集群体检命令
redis-cli --cluster check 是集群的体检命令:传入任意一个节点地址,它会遍历集群,输出各节点负责的槽覆盖情况、主从挂载关系、节点间连通性以及配置一致性检查结果。它是集群变更前后的标准动作——变更前跑一次留存基线,变更后再跑一次做对比,比事后凭印象判断拓扑是否正常可靠得多。
基本信息
| 命令格式 | redis-cli --cluster check <任意节点地址> |
|---|---|
| 输出内容 | 槽分布、主从关系、一致性告警 |
| 使用节奏 | 变更前后各跑一次并留档对比 |
| 相关命令 | redis-cli --cluster info 输出概览 |
| 返回表现 | 发现问题时会明确列出告警项 |
典型使用场景
- 扩容或缩容前后做拓扑对比,确认变化符合预期
- 故障恢复后确认集群是否回到完整状态
- 定期巡检:把输出按日期存档,便于回溯
- 上线验收:确认槽覆盖完整、主从成对
- 客户端报错时,先确认集群自身是否健康
体检与留档
体检与留档
redis-cli --cluster check 10.0.0.11:7000 # 完整体检
redis-cli --cluster info 10.0.0.11:7000 # 概览输出
redis-cli --cluster check 10.0.0.11:7000 > /tmp/cluster-check-$(date +%F).txt
redis-cli -p 7000 CLUSTER INFO | grep -E 'cluster_state|cluster_slots_assigned'
redis-cli -p 7000 CLUSTER NODES | grep -cE 'fail' # 快速看异常节点数量体检关注点
| 检查项 | 期望状态 | 异常含义 |
|---|---|---|
| 槽覆盖 | 0 到 16383 全部有归属 | 存在空洞时部分请求无法路由 |
| 主从关系 | 每个主节点都配有从节点 | 缺少从节点就没有故障转移能力 |
| 节点连通 | 所有节点互相可达 | 被隔离的节点会引发判定异常 |
| 配置一致性 | 各节点关键参数一致 | 不一致会导致行为难以预测 |
体检通过不代表数据健康:槽覆盖正常但某个节点内存打满、磁盘写满或复制延迟极高,同样会出问题。体检覆盖的是拓扑层面,资源与性能指标需要单独监控。
把体检输出按日期留档,故障复盘时能清楚看到拓扑在哪个时间点发生了变化,比事后从日志里一点点拼凑时间线省力得多。