*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必须为ok;cluster_slots_fail必须持续为 0;若cluster_slots_pfail持续增长,说明存在疑似故障节点,需排查网络 - 配合 CLUSTER NODES 使用:INFO 给出整体状态,NODES 给出具体节点明细
- 生产环境建议将
cluster_state、cluster_slots_fail、cluster_slots_pfail接入监控系统,设置告警阈值 - 槽迁移期间
cluster_slots_assigned不变,但数据分布会变化,可通过此命令确认迁移完成后状态恢复为ok
*FAQ
Q1: cluster_state:fail 代表什么?
A: 表示集群处于不可用状态。常见原因:有槽未分配(cluster_slots_assigned < 16384)、有槽处于 fail 状态(cluster_slots_fail > 0),或法定数量的主节点不可达。
Q2: cluster_size 和 cluster_known_nodes 有什么区别?
A: cluster_size 是主节点(master)的数量;cluster_known_nodes 是所有已知节点的数量(包括主节点和副本节点)。
Q3: cluster_current_epoch 和 cluster_my_epoch 是什么?
A: cluster_current_epoch 是集群当前的配置纪元(最大配置版本号);cluster_my_epoch 是当前节点自身的配置纪元。在故障转移时,新主节点的 epoch 会增加。