我计划将 Redis 作为会话和缓存存储添加到我们的应用程序中。我一直在研究如何在本地托管解决方案上使 Redis 高度可用。
标准方法似乎是将 Redis 设置为 3 节点副本,并使用 Sentinel 进行监控和自动故障转移。
Redis 2.8 引入了 Redis 集群。这是否意味着它带来了自动故障转移等,我们不再需要使用 Sentinel?
我计划将 Redis 作为会话和缓存存储添加到我们的应用程序中。我一直在研究如何在本地托管解决方案上使 Redis 高度可用。
标准方法似乎是将 Redis 设置为 3 节点副本,并使用 Sentinel 进行监控和自动故障转移。
Redis 2.8 引入了 Redis 集群。这是否意味着它带来了自动故障转移等,我们不再需要使用 Sentinel?
不,集群和故障转移是不同的场景。Cluster 也是 3.0,而不是 2.8。
HA 的标准(和最低限度)设置是一个主节点和一个从节点(也称为“一个 pod”),具有一组单独的三个节点,它们运行 Sentinel 并监控 pod。
这是为了确保服务器的故障转移。但是,您的客户端库必须支持使用 Sentinel 来发现 master 并在失败时重新连接,您在代码中实现它,或者您设置 TCP 负载均衡器和 sentinel 监控守护程序以在故障转移发生时更新您的负载均衡器配置这一点客户端代码不知道或不关心哨兵。
集群不是为了提供高可用性,而是为了服务器端的数据分片。对于集群,您正在查看最少 6-7 个节点(3 个主节点、3 个从节点、1 个备用节点)以及客户端中的集群支持以及需要访问多个密钥的命令和 Lua 脚本的限制。