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