要检查Redis哨兵模式是否正常运行,可以通过以下步骤进行验证:
1. 连接哨兵节点
使用redis-cli连接任意哨兵节点(默认端口26379):
redis-cli -h <sentinel_ip> -p 26379
2. 检查哨兵基本信息
(1) 查看哨兵状态信息
sentinel master mymaster
输出应包含:
role:当前主节点角色(应为master)num-slaves:从节点数量num-sentinels:哨兵节点数量(需与部署数量一致)failover-timeout:故障转移超时时间
(2) 检查从节点信息
sentinel slaves mymaster
确认所有从节点状态正常(无s_down或o_down标志)。
(3) 查看其他哨兵节点
sentinel sentinels mymaster
确认所有哨兵节点彼此可见且在线。
3. 验证主从切换能力
(1) 手动触发故障转移(测试用)
sentinel failover mymaster
观察是否成功选举新主节点,原主节点恢复后是否变为从节点。
(2) 监控哨兵日志
查看哨兵日志文件(默认位置):
tail -f /var/log/redis/sentinel.log
关注以下关键词:
+vote-for-leader:选举新主节点+switch-master:主从切换记录+sdown/-sdown:主观下线检测+odown/-odown:客观下线检测
4. 检查关键指标
通过sentinel ckquorum mymaster确认仲裁可用:
sentinel ckquorum mymaster
输出应为:“OK X usable Sentinels. Quorum and failover authorization can be reached”
5. 客户端验证
通过客户端连接哨兵获取当前主节点地址:
redis-cli -h <sentinel_ip> -p 26379 sentinel get-master-addr-by-name mymaster
返回的IP和端口应与实际主节点一致。
6. 常见异常排查
| 问题现象 | 可能原因 | 解决方向 |
|---|---|---|
s_down状态 |
网络波动/节点负载过高 | 检查网络连通性和节点资源 |
| 仲裁失败 | 哨兵节点数量不足 | 确保至少3个哨兵节点且网络互通 |
| 故障转移失败 | 法定人数未达成 | 检查sentinel monitor配置的quorum值 |
快速检测脚本示例
#!/bin/bash
SENTINELS=("26379" "26380" "26381") # 哨兵端口列表
for port in "${SENTINELS[@]}"; do
echo "Checking Sentinel $port:"
redis-cli -p $port sentinel master mymaster | grep -E "(ip|port|num-slaves|num-sentinels)"
echo "---"
done
通过以上步骤,可以全面验证Redis哨兵模式的健康状态。
内容由零声教学AI助手提供,问题来源于学员提问




