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