Я подключаюсь к небольшому кластеру Redis, размещенному на AWS, который не разделен, у него есть только один главный и 3 подчиненных устройства. У меня были трудности с репликацией, и это простое воспроизведение того, что я пробовал.
Мои кластеры:
172.28.52.18:6379> CLUSTER NODES
cc378ecb71d02c2495e219ce7043ea343eb91c1f 172.28.52.18:6379@1122 myself,slave 6ce7214224036cc42ba272486d9e8fe5d1b11875 0 1610811475000 2 connected
1e17d7794741c7db491a888dc2bca76590b52e64 172.28.53.83:6379@1122 slave 6ce7214224036cc42ba272486d9e8fe5d1b11875 0 1610811476195 2 connected
6ce7214224036cc42ba272486d9e8fe5d1b11875 172.28.53.213:6379@1122 master - 0 1610811474182 2 connected 0-16383
d780dfbb4d33275e50c098032d1cceb1cd368a65 172.28.52.180:6379@1122 slave 6ce7214224036cc42ba272486d9e8fe5d1b11875 0 1610811475189 2 connected
Подключитесь напрямую к мастеру (172.28.53.213 в приведенном выше выводе) и установите некоторые данные:
$ redis-cli -h 172.28.53.213
172.28.53.213:6379> SET key1 value1
OK
Затем подключитесь к одному из рабов:
$ redis-cli -h 172.28.52.180
172.28.52.180:6379> GET key1 value1
(error) MOVED 9189 172.28.53.213:6379
Осколков нет и как я это вижу:
- Все слоты (0-16383) принадлежат мастеру
- Все ведомые подключены к ведущему.
- Все синхронизировано
Поэтому я не понимаю, почему меня перенаправляют на master. Разве у раба не должна быть копия?
Я знаю, что могу подключиться к -c
, чтобы перенаправления выполнялись автоматически, но весь смысл репликации должен состоять в том, что перенаправления не нужны!