Ich schreibe eine Webanwendung im Frühjahr und verwende Spring Data Redis mit Jedis. Das Web-App im Gespräch mit einem redis Cluster mit vielen Set-Befehlen“ würde Ich mag Befehle an dem redis Cluster in einer Pipeline schicken Als ich versuchte, dass ich eine Ausnahme bekam.Pipeline mit JedisCluster nicht unterstützt
java.lang. UnsupportedOperationException: Pipeline ist derzeit nicht für JedisClusterConnection unterstützt
Was meine Alternative wäre
Edit1:.?
protected void store(Map<String,Creative> creativesToStore, Function<Map<String,Creative>,Object> executedAction)
{
this.redisTemplate.execute(
redisConnection -> executedAction.apply(creativesToStore), true, true); // Pipelined execution*/
}
protected Object storeAllCreativesRedis(Map<String,Creative> creativesToStore)
{
creativesToStore.keySet()
.stream()
.filter(key -> creativesToStore.get(key)!=null)
.forEach(key -> {
redisTemplate.opsForValue().set(key, creativesToStore.get(key), ttlSeconds, timeUnit);
logger.debug("Issuing a redis set for %s ",key);
});
return null;
}
Teilen Sie Ihren Code, nicht nur die Ausnahme? – alzee
Sie können eine Verbindung zu dem Knoten herstellen, auf dem sich Ihre Schlüssel befinden, und Pipelining direkt verwenden. – mp911de
Können Sie ein Beispiel zeigen, wie Sie sich bitte mit einem einzelnen Knoten in einem Cluster verbinden? –