次のノードを持つ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を使用しています
ノードdidがリダイレクトします。
documentation で説明されているように、クライアントは指定されたノードに接続してリクエストを再試行することが期待されています。 serverはこれを行いません。
redis-cli
を使用している場合、これらのリダイレクトを追跡するには -c
オプションを使用 する必要があります。