Redis MIGRATE命令参数数量错误问题排查求助
Redis MIGRATE命令参数错误排查
问题根源
你遇到的ERR wrong number of arguments for 'migrate' command错误,主要是以下两种情况导致:
1. Redis版本不支持AUTH选项
Redis 4.0之前的版本中,MIGRATE命令本身不支持AUTH参数。如果你的Redis实例版本低于4.0,在命令里加入AUTH会直接触发参数数量不匹配的错误。
2. 参数顺序或格式不符合要求
即使是支持AUTH选项的Redis 4.0+版本,参数顺序错误也会引发问题。正确的MIGRATE带COPY和AUTH的语法为:
MIGRATE host port key destination-db timeout [COPY] [REPLACE] [AUTH password]
注意AUTH是一个选项标识,后面必须紧跟密码作为完整参数,不能拆分或遗漏。
解决方案
针对Redis版本<4.0的情况
先在当前Redis实例执行AUTH完成认证,再执行不带AUTH参数的MIGRATE:
redis> AUTH 4PE***YgX6 OK redis> MIGRATE ip 6379 "" 1 5000 COPY
针对Redis版本≥4.0的情况
修正命令格式,确保AUTH和密码紧跟在COPY之后:
redis> MIGRATE ip 6379 "" 1 5000 COPY AUTH 4PE***YgX6
如果密码包含特殊字符,需要用引号包裹(比如AUTH "4PE#*YgX6")。
额外排查点
- 确认命令中所有参数用单个空格分隔,无多余空格或换行;
- 若迁移多个键(Redis 6.0+支持),需将
key位置设为空字符串"",并通过KEYS选项指定键列表,格式示例:redis> MIGRATE ip 6379 "" 1 5000 COPY AUTH 4PE***YgX6 KEYS user:1 user:2
内容的提问来源于stack exchange,提问作者Cooper Aaron
相关产品推荐
相关产品推荐

