我最初在制作时在群集模式下使用Redis
。但后来我意识到如果我使用Redis independent servers
使用ShardedJedis java API
,我可以使用ShardedJedisPipeline
,因为显而易见的原因,它具有更好的性能。
但是,在使用Redis Server
维护自动故障转移和高可用性时,我必须使用Redis Sentinel
。所以,我开始研究Sentinel
。但在执行初始POC
时,我知道我不能同时使用ShardedJedis
和Sentinel
。
现在似乎我的所有路径都已关闭
Redis Cluster
不支持Pipeline Sentinel
Sentinel
与ShardedJedis
一起使用。如果我在任何地方出错,请纠正我,请告诉我实现性能以及高可用性和自动故障转移的最佳策略。
答案 0 :(得分:1)
一般而言:
MULTI
或EXEC
)对于Redis群集来说是不可取的AFAIK,Redisson具有自动拓扑更新机制。我不确定,Jedis是否会定期更新群集视图,但可以手动执行此操作。 lettuce具有自动重新连接功能,自动群集视图更新为scheduled for the 3.3 release
HTH。
答案 1 :(得分:0)
您应该考虑Redis群集行为(Redis群集可以响应任何操作时的触发器重定向)。
Redis Cluster的每个进程都像普通的Redis进程一样,因此它支持Pipelining。 但是,它并不能保证我们使用多个节点进行流水线操作是安全的。
这是一个长时间的讨论,所以我附上了我发布到Redis Google网上论坛的关于Redis Cluster with Pipeline的链接。 请参阅此处了解更多详情。