45

I have a Redis cluster with the following nodes:

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)

Documentation says that any node can redirect queries to the properly node. But I can not redirect requests from 192.168.0.16:6379 master node. Here is what I tried:

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

It neither writes nor reads. When I try to get "myKey" from 192.168.0.14:6379 it shows next:

127.0.0.1:6379> get myKey
(nil)

What is wrong with my requests? I am using redis server version 3.2.5

Oleksandr
  • 703
  • 2
  • 10
  • 17

2 Answers2

67

The node did redirect you.

As the documentation explains, the client is expected to connect to the specified node to retry the request. The server does not do this.

If you're using redis-cli, then you must use the -c option if you want it to follow these redirects.

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
0

For get commands you may want to run:

READONLY

first as one of the following might have happened:

  1. The client sent a command about hash slots never served by the master of this replica.
  2. The cluster was reconfigured (for example resharded) and the replica is no longer able to serve commands for a given hash slot.
Nae
  • 107
  • 4