Redis 集群:(错误)已移动

Redis 集群:(错误)已移动

我有一个包含以下节点的 Redis 集群:

192.168.0.14:6379 master (slots from 0 to 16383)
192.168.0.15:6379 slave (slots from 0 to 16383)
192.168.0.16:6379 master (without slots)

文档说任何节点都可以将查询重定向到正确的节点。但我无法重定向来自 192.168.0.16:6379 主节点的请求。以下是我尝试的:

192.168.0.16:6379> set myKey myValue
(error) MOVED 16281 192.168.0.14:6379
192.168.0.16:6379> get myKey
(error) MOVED 16281 192.168.0.14:6379

它既不写入也不读取。当我尝试从 192.168.0.14:6379 获取“myKey”时,它显示以下内容:

127.0.0.1:6379> get myKey
(nil)

我的请求有什么问题?我使用的是 redis 服务器版本 3.2.5

答案1

节点做过重定向您。

作为文档解释,客户端需要连接到指定节点以重试请求。服务器不这样做。

如果你正在使用redis-cli,那么你必须使用-c选项如果您希望它遵循这些重定向。

答案2

对于获取命令你可能需要运行:

READONLY

首先作为下列之一可能会发生

  1. 客户端发送了一条有关该副本主节点从未提供服务的哈希槽的命令。
  2. 集群已重新配置(例如重新分片)并且副本不再能够为给定的哈希槽提供命令。

相关内容