CLUSTERDOWN 含义
CLUSTERDOWN 是集群模式的错误回复,含义是整个集群当前不可用,而不是某个键的问题。常见触发:负责某段槽位的主节点全部下线、16384 个槽没有完整覆盖、节点间无法达成多数派。定位入口是 CLUSTER INFO 的 cluster_state 与槽位统计,再用 CLUSTER NODES 核对节点视图。
基本信息
| 错误前缀 | CLUSTERDOWN |
|---|---|
| 定位命令 | CLUSTER INFO / CLUSTER NODES / CLUSTER SLOTS |
| 关键字段 | cluster_state 为 ok 或 fail |
| 相关配置 | cluster-require-full-coverage |
| 端口 | 服务端口加集群总线端口(服务端口加 10000) |
典型使用场景
- 客户端突然大面积报 CLUSTERDOWN,先判断是全局还是局部槽位问题
- 扩容或缩容后槽位没有全部指派,cluster_slots_assigned 小于 16384
- 机房故障或网络分区导致多数主节点失联
- 手工搬迁槽位中断,槽停在中间状态
- 核对 cluster-require-full-coverage 的语义是否符合预期
排查顺序
排查顺序
redis-cli -c CLUSTER INFO # 先看 cluster_state 与槽位覆盖统计
redis-cli -c CLUSTER NODES # 节点角色、槽位归属、握手状态
redis-cli -c CLUSTER SLOTS # 当前槽位到节点区间的映射
redis-cli -p 7000 cluster info | grep -E 'cluster_state|cluster_slots_assigned'
redis-cli -c CLUSTER COUNTKEYSINSLOT 0 # 抽查指定槽是否仍有人负责
redis-cli -p 7000 --cluster check 127.0.0.1:7000 # 集群一致性检查与修复建议CLUSTER INFO 字段
| 字段 | 含义 | 正常值 |
|---|---|---|
| cluster_state | 集群是否可用 | ok;fail 即整体不可用 |
| cluster_slots_assigned | 已指派的槽位总数 | 应为 16384 |
| cluster_slots_ok | 状态正常的槽位数 | 应等于已指派数 |
| cluster_slots_pfail | 疑似失联节点负责的槽位数 | 应为 0 |
| cluster_slots_fail | 确认失效节点负责的槽位数 | 应为 0,非 0 时集群通常 fail |
| cluster_known_nodes | 已知节点总数 | 与规划规模一致 |
| cluster_size | 持有槽位的主节点数 | 与规划的主节点数一致 |
恢复顺序:先把失联节点拉起并确认节点间总线端口连通,再看槽位是否重新覆盖,最后用 --cluster check 复核一致性,不要只看单个节点的视图。
cluster-require-full-coverage 默认为 yes 时,只要有一小段槽无人负责,整个集群就对外返回 CLUSTERDOWN;调整它属于可用性与一致性的取舍,要提前明确。
集群总线端口是节点间通信的专用通道,与客户端访问端口是两回事。只放行服务端口会让节点握手失败,槽位状态长期异常。