执行redis migrate命令时出错

问题描述

我正在尝试执行以下命令

migrate x.x.x.x 6379 key destinationserver copY

我收到错误

(error) ERR value is not an integer or out of range

这些 redis 服务器也有身份验证.. 我不知道如何用这个命令提供它

任何帮助将不胜感激。

解决方法

如果您在 redis-cli 中运行 %c,它会为您提供比文档更好的关于如何使用 printf("The value of s is: %p\n",(void*)&p); 命令的信息(它告诉您它是如何工作的)。这是我得到的输出:

help migrate

这里的 MIGRATE 指的是 redis 中的数据库 id。默认情况下,redis 系统有 16 个数据库,编号为 0-15,因此在您的示例中有 MIGRATE host port key| destination-db timeout [COPY] [REPLACE] [KEYS key] summary: Atomically transfer a key from a Redis instance to another one. since: 2.6.0 group: generic 的地方,应该是将数据放入的数据库 ID。这就是您收到错误的原因,它必须是数据库的 INT id。

对于 AUTH,只要您的 Redis 版本为 4.0.7 或更高,destination-db 就支持以下形式的 AUTH 关键字:

destinationserver

如果你有 Redis 6.0.0 或更高版本,你也可以提供一个用户名,尽管在我的文档或输出中没有关于这方面的信息,但我还没有运行版本 6。>