You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redis跨版本迁移执行MIGRATE命令报错:未知命令'MIGRATE'

问题原因及解决方法

你的核心错误是把MIGRATE命令发给了目标Redis实例,但MIGRATE是必须在源Redis实例上执行的命令——MIGRATE的逻辑是让源实例主动将指定键推送至目标实例,目标实例只需要接收数据,不需要执行这个命令。

具体错误分析

  1. 你的脚本中,xargs把扫描到的键传给了目标实例的redis-cli,然后在目标实例上执行MIGRATE命令,这完全搞反了执行主体。
  2. 你单独执行命令时,也是在目标实例的cli中输入MIGRATE,同样不符合命令的执行逻辑。

修正后的迁移脚本

source_host="你的源实例地址"
source_port=6379
source_db=0

target_host="你的目标实例地址"
target_port=6379
target_db=0

# 关键修改:在源实例的redis-cli中执行MIGRATE,参数指定目标实例地址
redis-cli -h $source_host -p $source_port -n $source_db --scan | xargs redis-cli -h $source_host -p $source_port -n $source_db MIGRATE $target_host $target_port "" $target_db 5000 KEYS

单独执行的正确方式

  1. 先连接到源Redis实例:
redis-cli -h 你的源实例地址 -p 6379 -n 0
  1. 在源实例的cli中执行MIGRATE命令(指定目标实例信息):
MIGRATE 你的目标实例地址 6379 "" 0 5000 KEYS "some_key"

额外注意事项

  • 确保源实例网络能访问目标实例的6379端口(安全组、防火墙需放行)
  • 如果目标实例有密码认证,需要在MIGRATE命令末尾加上AUTH 目标实例密码参数
  • Redis 6.0.5完全支持MIGRATE的KEYS批量迁移模式,无需担心版本兼容问题

内容的提问来源于stack exchange,提问作者Kay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 02:42:22