什么是哨兵(Sentinel)
- 哨兵是一种机制,用来监控主从节点是否按照预期执行
哨兵有什么作用
- 监控:哨兵不断检查主从节点是否健康
- 故障自动恢复:如果主节点发生故障,哨兵马上升级一个从节点为组节点
- 通知:哨兵充当redis客户端的服务发现,如果主从节点的地址改变了,会马上通知redis客户端
哨兵怎么判断一个redis是否健康
- 哨兵每隔一秒向节点发送ping命令
- 如果一个哨兵长时间未收到回复命令,认为该实例主观下乡
- 如果超过指定数量的哨兵未收到命令,认为该实例客观下线
哨兵怎么故障自动恢复
- 先排除主从节点断开时间超过指定时间的节点
- 接着判断从节点的slave-priority值,越小优先级越高,如果是0则永不参与选举
- 如果slave-priority值一样,判断offset的值,越大优先级越大
- 最后判断从节点的运行id,越小优先级越高