Redis哨兵机制详解
一、核心定义
Redis Sentinel(哨兵)是Redis官方提供的高可用性解决方案,主要用于实现:
主从集群的自动故障转移
持续监控主从节点状态
服务发现与配置更新
二、核心功能
1. 监控(Monitoring)
每秒向所有节点发送PING命令
通过主观下线和客观下线机制判断节点状态
典型配置项:sentinel monitor <master-name> <ip> <port> <quorum>
2. 通知(Notification)
通过Pub/Sub通道广播节点状态变更
支持对接外部监控系统(如Prometheus)
3. 自动故障转移(Failover)
选举新的主节点流程:
Sentinel领导者选举(Raft算法)
选择最优从节点(考虑复制偏移量、运行ID等)
执行slaveof no one命令提升为主
三、部署架构
四、注意事项
至少需要3个Sentinel节点避免脑裂
客户端应实现Sentinel自动发现逻辑
旧版本存在故障转移期间数据丢失风险(建议4.0+版本)