试想下之前将的主从模型,如果master node挂掉了,那么我们需要人为的重启服务并且同步数据。这个时间将是不可控的。
我们引出今天讲解的主角:sentinal哨兵。
为什么要加入哨兵(哨兵能做什么)?
(1)集群监控,负责监控redis master和slave进程是否正常工作。
(2)消息通知,如果某个Redis实例有故障,哨兵负责发送消息作为报警给管理员。
(3)故障转移,如果master node挂了,会自动转移到slave上。
(4)配置中心,如果故障转移发生了,通知client客户端新的master地址。
哨兵核心知识
(1)哨兵至少需要3个实例来保证健壮性
(2)哨兵+redis主从的部署架构不会保证数据零丢失,只能保证redis集群的高可用性。
(3)对于哨兵+redis主从这种复杂的部署架构,尽量在测试环境和生产环境都进行充足的测试和演练。
为什么redis哨兵集群需要3个及以上节点?
引出两个概念
quorum:表示最小同意确认master宕机的节点数。
majority:表示最小可故障转移的节点数(最大)。举个例子 2的majority=2,3的majority=2,4的majority=2,5的majority=3,7的majority=4 计算规则可以归纳为 int majority =(a+1)/