Redis哨兵模式查看集群状态
最近在面试中被问到一个高频题:"如何查看Redis哨兵模式的集群状态?" 这个问题看似简单,但能看出候选人是否真正操作过Redis哨兵模式的集群状态管理。我来分享下标准回答思路:
🔥 2025年Java面试宝典:
点击获取:链接 提取码:9b3g
(涵盖Redis高频考点,包含哨兵模式实战案例)
一、为什么需要监控哨兵集群状态
在Redis哨兵模式中,哨兵负责自动故障转移。如果主节点宕机,哨兵会自动选举新主节点。所以查看集群状态是运维必备技能:
- 确认主从关系是否正常
- 检测故障转移是否触发
- 监控哨兵节点存活状态
二、核心操作命令(口述版)
▍Step 1: 连接哨兵节点
redis-cli -h <哨兵IP> -p 26379
关键点:每个哨兵节点都存储完整集群状态,连接任意一个即可。
▍Step 2: 查看主节点信息
SENTINEL masters

输出示例:
1) 1) "name"
2) "mymaster" # 主节点名称
3) "ip"
4) "10.0.0.1" # 主节点IP
5) "flags"
6) "master"
面试中要强调:flags字段出现odown表示节点客观下线,触发故障转移。
▍Step 3: 查看从节点状态
SENTINEL slaves mymaster

重点关注:
role字段:确认是slavemaster-link-status:ok表示复制正常
▍Step 4: 检查哨兵节点
SENTINEL sentinels mymaster
输出示例:
1) 1) "ip"
2) "10.0.0.2" # 哨兵节点IP
3) "runid"
4) "a1b2c3d4" # 节点ID
关键结论:当输出多个哨兵IP时,说明哨兵模式集群冗余正常,避免单点故障。
三、故障排查实战技巧
-
主节点切换验证:
SENTINEL get-master-addr-by-name mymaster直接返回当前主节点IP,快速确认故障转移结果。
-
历史事件追溯:
SENTINEL reset mymaster # 重置计数器 SENTINEL failover mymaster # 手动触发故障转移(测试用)
-
脑裂场景处理:
- 当多个主节点同时存在,说明出现脑裂
- 解决方案:强制修改
quorum值(需>50%哨兵存活)
四、面试加分的细节
- 命令本质:所有哨兵命令本质是查询哨兵节点的内置字典
- 监控工具:建议配合
redis-cli --sentinel交互模式 - 安全提示:避免在生产环境频繁执行
SENTINEL failover
💡 面试资源福利:
如果你需要购买面试鸭会员,通过面试鸭返利网找我可返利25元!高频题库+实战解析一网打尽。
掌握这些Redis哨兵模式的集群状态查询技巧,面试官会认为你有真实运维经验。记住:故障转移不是黑盒,通过哨兵命令你能看到每一次状态切换的完整轨迹!


