Как легко переключать узлы в Redis cluster cli?

У меня есть кластер redis с тремя узлами.

Если я запустил узлов кластера после подключения к одному из узлов через redis-cli , я получу следующее вывод:

10.0.32.70:6379> cluster nodes
fedd7d9220ca59045782050e9c418103fdeee3bf 10.0.33.13:6379@1122 slave 56ada5e1cc30ba1889950df4c4203b856wc83558 0 1595241803685 2 connected
9eac3667c13055555555a52b20628da372dadc21 10.0.32.161:6379@1122 slave 81777bc32d3ff82da733e4b8f36a14e8de25e057 0 1595241801000 1 connected
861e7ed26924bcccccccaa23b1977982397000e7 10.0.33.231:6379@1122 slave 10397e832212231dc40ec687798f245a39007506 0 1595241802678 3 connected
10397e832212231dc40ec687798f245a39007506 10.0.32.117:6379@1122 master - 0 1595241801671 3 connected 10923-16383
81777bc32d3ff82da733e4b8f36a14e8de25e057 10.0.33.11:6379@1122 master - 0 1595241802000 1 connected 5462-10922
56ada5e1cc30ba1889950df4c4203b856wc83558 10.0.32.70:6379@1122 myself,master - 0 1595241801000 2 connected 0-5461

Теперь я хочу переключиться на другой узел с текущего.

Когда я использую select , я получаю следующую ошибку:

> select 1
(error) ERR SELECT is not allowed in cluster mode

Я могу активировать переключение, используя получить 1 , получить 2 ... и т. Д. (В основном это команда получения со случайным целым числом). Несколько проб и ошибок приведут меня к правильному узлу.

Есть ли способ попроще?

0
задан 20 July 2020 в 13:52
3 ответа

вы можете попробовать получить <id узла>. В твоем случае.

get 10397e832212231dc40ec687798f245a39007506
get 81777bc32d3ff82da733e4b8f36a14e8de25e057
get 56ada5e1cc30ba1889950df4c4203b856wc83558

Вы можете подключаться к главным узлам только с помощью get . Если вы попытаетесь подключиться к ведомому с помощью get. Он будет подключаться только к главному узлу.

1
ответ дан 8 October 2020 в 12:45

Изнутри redis-cli вы также можете:

connect 10.0.33.11 6379

Или на моем тестовом кластере

connect localhost 30002
0
ответ дан 3 March 2021 в 21:50

Возможно, полезный трюк: в моем тестовом кластере (через команду create-cluster, 3 узла, сопоставление по умолчанию) методом проб и ошибок я нашел 3 коротких ключа, которые быстрее набирать для переключения узлов:

get 3  (node 1)
get 1  (node 2)
get 4  (node 3)

( 3.14, как и PI)

Вы должны сначала запустить redis-cli с параметром -c для автоматического переключения узлов при установке/получении ключа.

Если ваше сопоставление кластеров отличается, вы можете просто начать использовать get, чтобы найти короткие запоминающиеся, которые работают в вашем кластере. Очевидно, что сопоставление кластера может измениться в будущем, поэтому вы не захотите использовать его в каких-либо постоянных сценариях/коде.

0
ответ дан 3 March 2021 в 22:07

Теги

Похожие вопросы