检查Redis哨兵模式状态可以通过以下几种方式:
1. 连接哨兵节点查询信息
# 连接哨兵节点(默认端口26379)
redis-cli -p 26379
# 查看哨兵基本信息
info sentinel
# 查看监控的主节点信息
sentinel masters
# 查看特定主节点的详细信息
sentinel master <master-name>
# 查看主节点的从节点信息
sentinel slaves <master-name>
# 查看其他哨兵节点信息
sentinel sentinels <master-name>
2. 关键命令详解
# 查看所有监控的主节点
127.0.0.1:26379> SENTINEL MASTERS
# 检查特定主节点的状态
127.0.0.1:26379> SENTINEL MASTER mymaster
# 查看从节点列表
127.0.0.1:26379> SENTINEL SLAVES mymaster
# 获取当前主节点地址
127.0.0.1:26379> SENTINEL GET-MASTER-ADDR-BY-NAME mymaster
# 检查哨兵节点数量
127.0.0.1:26379> SENTINEL CKQUORUM mymaster
3. 系统层面检查
# 检查哨兵进程状态
ps aux | grep redis-sentinel
# 检查端口监听(哨兵默认端口26379)
netstat -tulpn | grep 26379
# 或者使用ss命令
ss -tulpn | grep 26379
# 查看哨兵日志
tail -f /var/log/redis/sentinel.log
4. Python脚本自动检查示例
import redis
def check_sentinel_status(host='localhost', port=26379, master_name='mymaster'):
try:
sentinel = redis.Redis(host=host, port=port)
# 检查主节点信息
master_info = sentinel.sentinel_master(master_name)
print(f"Master Info: {master_info}")
# 检查从节点信息
slaves_info = sentinel.sentinel_slaves(master_name)
print(f"Slaves Count: {len(slaves_info)}")
# 获取当前主节点地址
master_addr = sentinel.sentinel_get_master_addr_by_name(master_name)
print(f"Current Master: {master_addr}")
# 检查哨兵信息
sentinels_info = sentinel.sentinel_sentinels(master_name)
print(f"Sentinels Count: {len(sentinels_info)}")
except Exception as e:
print(f"Error: {e}")
check_sentinal_status()
5.重要状态指标**
- 主节点状态:
flags字段显示master或s_down/o_down - 从节点数量:确保所有从节点正常连接
- 哨兵数量:至少3个哨兵以确保高可用
- 故障转移状态:查看
failover-state字段
通过这些方法可以全面了解Redis哨兵集群的健康状态。
内容由零声教学AI助手提供,问题来源于学员提问




