查一个槽里有几个键
CLUSTER COUNTKEYSINSLOT slot 返回指定槽当前保存的键数量,是槽迁移与缩容时最常用的核对手段:迁移前用它评估要搬多少数据、估算时间窗口,迁移后用源节点与目标节点的计数确认迁移是否真正完成。配套的槽内键名查询命令可以抽取样本键做人工验证,两个命令常常一起使用。
基本信息
| 用法 | CLUSTER COUNTKEYSINSLOT <槽编号> |
|---|---|
| 返回 | 该槽当前保存的键数量 |
| 配套命令 | 按槽查询键名的命令,用于抽样核对 |
| 主要场景 | 迁移前评估、迁移后核对、缩容收尾 |
| 取值范围 | 0 到 16383 |
典型使用场景
- 迁移前评估单个槽的数据量,估算迁移窗口与影响
- 迁移完成后核对源节点计数归零、目标节点计数大于零
- 缩容收尾时确认待删节点的槽确实已经没有数据
- 排查某个槽数据异常偏多导致分片负载不均
- 演练中验证迁移流程每一步的中间状态是否符合预期
核对示例
核对示例
redis-cli -p 7000 CLUSTER COUNTKEYSINSLOT 1234 # 源节点该槽的键数
redis-cli -p 7001 CLUSTER COUNTKEYSINSLOT 1234 # 目标节点同一槽的键数
redis-cli -p 7000 CLUSTER GETKEYSINSLOT 1234 5 # 抽样取几个键名核对
redis-cli -p 7000 CLUSTER COUNTKEYSINSLOT 1234 # 迁移收尾后再次确认计数判读
| 观察结果 | 含义 | 应对 |
|---|---|---|
| 源节点归零、目标大于零 | 迁移正常完成 | 可以推进下一步操作 |
| 两边都大于零 | 仍在迁移中 | 等流程结束再核对,不要提前收尾 |
| 源节点归零、目标也归零 | 槽内本来就没有键 | 正常情况,注意区分空槽 |
| 迁移后源节点仍有键 | 迁移未完成或中断 | 重跑迁移流程并查日志 |
空槽返回 0 而不是报错,别把 0 当成「槽不存在」或命令失败,判断槽归属要看节点拓扑而不是计数。
计数是瞬时值,迁移过程中会不断变化,核对必须等迁移流程完全结束后再做,中途读数没有参考意义。