*Redis CLUSTER MIGRATION 命令

CLUSTER MIGRATION 用于查看和管理当前节点上正在进行的槽位迁移任务的状态信息。


*语法

CLUSTER MIGRATION

*参数说明

无参数。


*返回值

  • Array:包含当前节点所有正在进行的迁移任务信息
    • 每个迁移任务为一个数组,包含:
    • 槽位编号(Integer)
    • 迁移方向(String:migratingimporting
    • 目标/源节点 ID(String)
    • 迁移进度(Integer:已迁移的 key 数量)
    • 总 key 数量(Integer)
  • Empty Array:没有正在进行的迁移任务

*时间复杂度

O(N),N 为正在进行的迁移任务数量。


*示例

*查看当前迁移任务

> CLUSTER MIGRATION
1) 1) (integer) 5798
   2) "migrating"
   3) "67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1"
   4) (integer) 150
   5) (integer) 500
2) 1) (integer) 6000
   2) "importing"
   3) "07c37dfeb235213a872192d90877d0cd55635b91"
   4) (integer) 80
   5) (integer) 200

*无迁移任务时

> CLUSTER MIGRATION
(empty array)

*配合 MIGRATE 命令使用

# 开始迁移槽位 5798 到目标节点
> CLUSTER SETSLOT 5798 MIGRATING 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1
OK

# 查看迁移进度
> CLUSTER MIGRATION
1) 1) (integer) 5798
   2) "migrating"
   3) "67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1"
   4) (integer) 0
   5) (integer) 1000

*常见错误

错误 原因 解决
ERR This instance has cluster support disabled 未启用集群模式 开启 cluster-enabled yes
ERR CLUSTER MIGRATION not supported in this version Redis 版本不支持 升级到 Redis 7.2+

*最佳实践

  • 在槽位迁移过程中定期查询 CLUSTER MIGRATION 监控进度
  • 迁移期间注意监控节点负载和网络带宽
  • 大批量迁移建议分批次执行,每批完成后检查状态
  • 结合 CLUSTER COUNTKEYSINSLOT 预估迁移时间和数据量
  • 迁移完成后验证目标节点的 CLUSTER NODES 输出确认槽位归属

*FAQ

Q1: CLUSTER MIGRATION 和 CLUSTER SETSLOT 有什么关系? A: CLUSTER SETSLOT ... MIGRATING/IMPORTING 设置迁移状态标记,MIGRATE 命令实际传输数据,CLUSTER MIGRATION 查看这些任务的进度。

Q2: 迁移任务卡住怎么办? A: 检查网络连通性、节点负载、大 key 情况。可以中断迁移后重新执行。

Q3: 多个槽位可以同时迁移吗? A: 可以,但建议一次只迁移一个槽位或少量槽位,避免对集群性能产生过大影响。

Q4: Redis 哪个版本开始支持 CLUSTER MIGRATION? A: Redis 7.2.0 新增此命令。