首页/数据/数据库速查/查询哨兵状态(masters/replicas/sentinels)
Redis 运维与场景124 条

查询哨兵状态(masters/replicas/sentinels)

SENTINEL masters 看主库状态与票数,SENTINEL replicas 看从库列表,SENTINEL get-master-addr-by-name 给客户端拿地址,SENTINEL sentinels 看其它哨兵。

数据库速查数据更新于 2026-10-13

查哨兵状态

查哨兵状态主要靠四个命令:SENTINEL masters 列出被监控的主库及其状态与票数,SENTINEL replicas 列出从库,SENTINEL sentinels 列出其它哨兵,SENTINEL get-master-addr-by-name 直接返回当前主库地址供客户端使用。排查「为什么没有切换」时,还要用 SENTINEL CKQUORUM 确认票数是否够。这些命令可以向任意一个哨兵执行,返回的是它自己掌握、并与其它哨兵同步过的视图。

基本信息

常用命令SENTINEL masters / master / replicas / sentinels
客户端发现SENTINEL get-master-addr-by-name 返回当前主库地址
哨兵端口默认 26379,需与数据端口分开规划
关键字段flags、num-slaves、num-other-sentinels、quorum
票数检查SENTINEL CKQUORUM master-name

典型使用场景

  • 切换之后确认新主地址是否正确
  • 排查哨兵之间是否真的互相发现
  • 确认从库有没有被正确识别进来
  • 核对判定下线与授权切换所需的票数
  • 编写客户端或运维脚本读取当前主库地址

常用查询

常用查询
redis-cli -p 26379 SENTINEL masters
redis-cli -p 26379 SENTINEL master mymaster
redis-cli -p 26379 SENTINEL replicas mymaster
redis-cli -p 26379 SENTINEL sentinels mymaster
redis-cli -p 26379 SENTINEL get-master-addr-by-name mymaster
# 输出示例:1) "10.0.0.10"  2) "6379"
redis-cli -p 26379 SENTINEL CKQUORUM mymaster

命令与用途

命令返回内容用途
masters所有被监控主库与状态快速总览
master单个主库的详细字段看 flags 与票数配置
replicas从库列表与状态标记确认从库数量是否正常
sentinels其它哨兵及其地址确认哨兵之间互相可见
get-master-addr-by-name当前主库地址供客户端做地址发现
CKQUORUM票数是否足够判断当前能否发起切换
用 get-master-addr-by-name 做客户端发现比直连固定地址可靠得多:主库切换后地址会自动变化,应用只需要重新查询一次哨兵,不必改配置文件。
把 SENTINEL replicas 的输出直接当实时状态使用要先过滤 flags:标记为下线的节点并不一定在正常提供服务,不看标记会得出错误结论。
num-other-sentinels 为 0 说明哨兵之间没有互相发现,多半是网络、端口或对外地址配置问题;这种状态下的高可用形同虚设,必须优先修好。部署完成后建议在每台哨兵上各查一遍,确认彼此可见,再谈高可用体验。

易错点

  • 客户端直连旧主地址不做发现:切换之后应用仍然往旧库写
  • 把 replicas 的输出当实时状态:忽略了下线标记
  • 只看 masters 不看 sentinels:哨兵之间失联却长期无人察觉
  • 脚本解析文本输出不做容错:版本差异会让解析结果静默出错
  • 只用 get-master-addr-by-name 取一次地址就长期缓存:切换后必须重新查询,否则应用一直在写旧主

数据来源与参考

  • Redis 官方文档: SENTINEL masters
  • Redis 官方文档: SENTINEL get-master-addr-by-name

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌