首页/数据/Redis 进阶速查/CLUSTERDOWN:集群不可用
性能与排障129 条

CLUSTERDOWN:集群不可用

CLUSTERDOWN 表示集群状态不可用:常见于多数派主节点失联、槽位未完整覆盖、集群模式误配;先看 CLUSTER INFO 的 cluster_state。

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

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;调整它属于可用性与一致性的取舍,要提前明确。
集群总线端口是节点间通信的专用通道,与客户端访问端口是两回事。只放行服务端口会让节点握手失败,槽位状态长期异常。

易错点

  • 把网络分区当单节点宕机:重启单节点不能恢复多数派,集群仍然 fail
  • 只放行服务端口不放行集群总线端口:节点握手失败,槽位状态持续异常
  • 手工搬迁槽位中断后未收尾:槽停在中间态,部分请求持续报错
  • 只查一个节点的 CLUSTER INFO 就下结论:各节点视图可能不一致,需交叉核对

数据来源与参考

  • Redis 官方文档:集群故障状态
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌