gpt4 book ai didi

java - 用于 ShardedJedisPipeline 的 Redis Sentinel 和 ShardedJedis

转载 作者:可可西里 更新时间:2023-11-01 11:21:13 26 4
gpt4 key购买 nike

我最初在生产环境中以集群模式使用 Redis。但后来我意识到,如果我使用 ShardedJedis java API 使用 Redis 独立服务器,我可以使用 ShardedJedisPipeline,由于显而易见的原因,它具有更好的性能。但是在使用 Redis Server 来维护自动故障转移和高可用性时,我必须使用 Redis Sentinel。因此,我开始研究 Sentinel。但是在进行初始 POC 时,我了解到我不能同时使用 ShardedJedisSentinel

现在看来我所有的路径都关闭了

  1. Redis Cluster不支持Pipeline
  2. 如果没有 Sentinel,我无法实现高可用性和自动故障转移
  3. 我不能将 SentinelShardedJedis 一起使用。

如果我有任何错误,请纠正我,请建议我实现性能以及高可用性和自动故障转移的最佳策略。

最佳答案

一般来说:

  • Redis Cluster 像 Redis Standalone 一样支持流水线。这里的重要部分是在使用键发出命令时点击正确的节点。没有键的命令(例如 MULTIEXEC)不适用于 Redis 集群
  • HA 部分并非 100% 正确。虽然 Redis 集群确实没有像 Redis Sentinel 那样的 HA-Registry,但集群本身维护着一个拓扑结构。如果使用 masters 和 slaves,那么将客户端故障转移到新的 master 并不是什么大问题。这里唯一的技巧是找到合适的时机并相应地更新集群 View 。

据我所知,Redisson具有自动拓扑更新机制。我不确定 Jedis 是否定期更新它的集群 View ,但可以手动执行此操作。 lettuce具有自动重新连接功能,自动集群 View 更新为 scheduled for the 3.3 release

HTH.

关于java - 用于 ShardedJedisPipeline 的 Redis Sentinel 和 ShardedJedis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31406389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com