CLUSTER INFO 是什么
CLUSTER INFO 是集群健康状态的快速体检命令,它返回当前节点对集群的认知:集群整体是否可用、有多少槽已被分配、认识多少个节点、消息统计如何。最关键的字段是 cluster_state,取值为 ok 表示所有槽都被正确服务,为 fail 则意味着集群整体拒绝写入。它输出简洁,适合放进监控采集与故障排查的第一步。
基本信息
| 核心字段 | cluster_state、cluster_slots_assigned、cluster_known_nodes |
|---|---|
| 槽统计 | cluster_slots_ok、cluster_slots_pfail、cluster_slots_fail |
| 节点规模 | cluster_size 表示有槽的主节点数量 |
| 消息统计 | cluster_stats_messages_* 系列反映节点间通信量 |
| 判定标准 | 16384 个槽全部被分配且可达时集群才为 ok |
典型使用场景
- 日常巡检:把 cluster_state 接入监控,出现 fail 立即告警
- 扩容与迁移后验收:确认槽分配未留下空洞,集群回到 ok 状态
- 写入被拒的排查:客户端报错前先确认服务端视角是 ok 还是 fail
- 节点通信用量评估:观察消息统计的增长趋势,判断是否存在异常频繁的握手或投票
- 故障定位分流:先区分是「有槽缺失」还是「节点不可达」,两类问题处置完全不同
观察集群状态
观察集群状态
redis-cli -p 7000 CLUSTER INFO
redis-cli -p 7000 CLUSTER INFO | grep -E 'cluster_state|cluster_slots_assigned|cluster_slots_ok'
redis-cli -p 7000 CLUSTER INFO | grep -E 'cluster_known_nodes|cluster_size'
redis-cli -p 7000 CLUSTER NODES | wc -l # 实际认识的节点条数
redis-cli -p 7000 CLUSTER NODES | grep -c fail # 被判为 fail 的节点数
# 交叉核对另一个节点,避免单节点视角偏差
redis-cli -p 7001 CLUSTER INFO | grep cluster_state关键字段读法
| 字段 | 含义 | 异常判断 |
|---|---|---|
| cluster_state | 集群是否可用 | fail 时全部写入被拒 |
| cluster_slots_assigned | 已分配的槽数量 | 小于 16384 即存在槽空洞 |
| cluster_slots_pfail | 可能失效的槽数量 | 大于零说明有节点疑似不可达 |
| cluster_slots_fail | 已确认失效的槽数量 | 大于零说明部分键空间不可服务 |
| cluster_known_nodes | 认知到的节点总数 | 与预期不符说明握手未完成 |
单节点视角的局限:每个节点的 CLUSTER INFO 反映的是它自己的认知,刚发生故障或网络分区时不同节点看到的状态可能不一致。判断集群整体健康应交叉查询多个节点,而不是以某一个节点的输出为唯一结论。
滚动重启期间短暂 fail 可能是正常过程:节点陆续重启时槽的归属在不断变化,只要重启完成后收敛回 ok,就属于预期行为。真正需要干预的是 fail 状态长时间不恢复,或槽数量始终补不齐。