*Redis CLUSTER INFO 命令

CLUSTER INFO 提供当前 Redis Cluster 节点的详细状态信息,包括节点状态、槽分配、集群大小等核心指标。


*语法

CLUSTER INFO

*参数说明

无参数。


*返回值

  • Bulk String:多行文本,每行一个 key:value 格式的状态信息,与 INFO 命令格式类似。

*时间复杂度

O(1)

*

*示例

*查看集群节点状态

> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:2
cluster_stats_messages_sent:1483822
cluster_stats_messages_received:1483828

*集群存在故障槽

> CLUSTER INFO
cluster_state:fail
cluster_slots_assigned:16384
cluster_slots_ok:16380
cluster_slots_pfail:0
cluster_slots_fail:4
cluster_known_nodes:6
cluster_size:3
...

*槽迁移中的状态

> CLUSTER INFO
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_stats_messages_sent:25000
cluster_stats_messages_received:25000

*常见错误

错误 原因 解决
ERR This instance has cluster support disabled 未启用集群模式 在 redis.conf 中设置 cluster-enabled yes

*最佳实践

  • 监控核心指标cluster_state 必须为 okcluster_slots_fail 必须持续为 0;若 cluster_slots_pfail 持续增长,说明存在疑似故障节点,需排查网络
  • 配合 CLUSTER NODES 使用:INFO 给出整体状态,NODES 给出具体节点明细
  • 生产环境建议将 cluster_statecluster_slots_failcluster_slots_pfail 接入监控系统,设置告警阈值
  • 槽迁移期间 cluster_slots_assigned 不变,但数据分布会变化,可通过此命令确认迁移完成后状态恢复为 ok

*FAQ

Q1: cluster_state:fail 代表什么? A: 表示集群处于不可用状态。常见原因:有槽未分配(cluster_slots_assigned < 16384)、有槽处于 fail 状态(cluster_slots_fail > 0),或法定数量的主节点不可达。

Q2: cluster_sizecluster_known_nodes 有什么区别? A: cluster_size 是主节点(master)的数量;cluster_known_nodes 是所有已知节点的数量(包括主节点和副本节点)。

Q3: cluster_current_epochcluster_my_epoch 是什么? A: cluster_current_epoch 是集群当前的配置纪元(最大配置版本号);cluster_my_epoch 是当前节点自身的配置纪元。在故障转移时,新主节点的 epoch 会增加。