Redis集群是一个分布式的Redis环境,它被设计为能够自动化地分区,并且在其中有能力处理多个主机在同一个集群中运行。和许多系统一样,Redis集群具有固有的弱点,如网络连接中断、机器宕机等等问题。这时候,哨兵就发挥了作用。
哨兵的作用
Redis Sentinel(哨兵)是一个分布式系统,它的作用是监控Redis集群中所有主节点和备用节点的状态,并在主节点出现故障时(如网络中断、机器宕机等),自动通过故障转移的方式将备用节点提升为主节点,使Redis集群能够持续的提供服务,从而保证系统的高可用性。Redis Sentinel可以自动执行故障转移、重新配置主节点、在主节点出现故障时切换,使得Redis集群能够持续提供高质量的服务。
6个节点的哨兵
通常,我们会将哨兵节点的数量设置为奇数,因为它们在决策时需要达成共识。但是哨兵节点数量不能过多,因为过多的哨兵节点会增加集群协调的复杂度,引入单点故障,使得哨兵的数量大于集群中的节点数并没有意义。因此,Redis建议将哨兵节点的数量设置为集群中主服务器的一半以下,这样能够既保证高可用,又减少额外开销。当提供服务的Redis集群规模较大时,6个节点的哨兵集群通常被认为是一个较好的做法。这样可以保证集群的高可用性,避免单点故障影响Redis集群的可用性。