首页/数据/Redis 进阶速查/CLUSTER INFO:集群状态速览

CLUSTER INFO:集群状态速览

CLUSTER INFO 返回 cluster_state、槽统计、节点数、消息统计等:cluster_state:ok 表示所有槽都被正确服务,是集群健康的首要判据。

Redis 进阶速查数据更新于 2026-10-13

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 状态长时间不恢复,或槽数量始终补不齐。

易错点

  • 只看 cluster_state 为 fail 就重启节点,未区分是槽缺失还是节点不可达,重启解决不了槽空洞问题
  • 只查一个节点的状态就宣布集群不可用,其他节点可能是健康的,应交叉验证后再下结论
  • 把滚动重启期间的短暂 fail 当作故障报警并触发人工干预,干扰了正常的发布流程
  • 不监控 cluster_state 与槽统计,等到客户端大面积报错时才开始排查,故障发现时间被显著推迟

数据来源与参考

  • Redis 官方文档:CLUSTER INFO 命令
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌