内容提要
Redis 哨兵机制通过监控主库状态,确保高可用性。当主库宕机时,哨兵会选举新的主库并通知从库和客户端,以保持服务持续运行。
关键要点
-
Redis 哨兵机制通过监控主库状态确保高可用性。
-
当主库宕机时,哨兵会选举新的主库并通知从库和客户端。
-
哨兵通过 PING 命令监控主从库的网络连接。
-
只有多数哨兵认为主库下线,才会进行主从切换。
-
新主库的选择基于从库的状态、网络状态和优先级等条件。
-
哨兵通过 pub/sub 机制与其他哨兵互相发现和通信。
-
哨兵需要与从库和客户端建立连接以进行监控和通知。
-
主从切换由投票机制决定,任何哨兵都可以参与选举成为 leader。
延伸解读
哨兵机制的高可用性保障
Redis 的哨兵机制通过监控主库状态,确保系统的高可用性。哨兵通过 PING 命令检测主从库的连接,只有在多数哨兵确认主库下线后,才会进行主从切换。这种设计降低了误判的风险,确保了服务的稳定性。
新主库的选择标准
在主库宕机后,哨兵会根据从库的状态、网络状况和优先级等条件来选择新的主库。用户可以通过配置从库的 slave-priority 来影响选择结果,这为系统的灵活性和适应性提供了保障。
哨兵与客户端的通信
哨兵不仅需要与主从库建立连接,还需及时通知客户端主从切换的信息。客户端可以通过订阅哨兵的消息获取主库状态变化,这样可以确保在主库宕机后,客户端的写操作能够迅速切换到新的主库,减少服务中断的时间。
延伸问答
Redis 哨兵机制的主要功能是什么?
Redis 哨兵机制通过监控主库状态,确保高可用性,并在主库宕机时选举新的主库。
哨兵如何判断主库是否宕机?
哨兵通过发送 PING 命令监控主从库的网络连接,若超时则判断为主观下线,只有多数哨兵认为主库下线时才标记为客观下线。
新主库是如何选择的?
新主库的选择基于从库的状态、网络状态和优先级等条件,通过打分规则选出得分最高的从库作为新主库。
哨兵如何与客户端进行通信?
哨兵与客户端建立连接,及时通知主库下线的消息,客户端可以订阅哨兵消息以获取主从切换事件。
哨兵集群是如何组建的?
哨兵实例通过 Redis 提供的 pub/sub 机制互相发现和通信,发布自己的 IP 和端口信息以建立网络连接。
主从切换的投票机制是怎样的?
任何一个哨兵判断主库主观下线后,会向其他哨兵发送命令,其他哨兵投票,若多数赞成则主库被认为客观下线,随后进行 leader 选举。