Метод присвоения слотов узлам

Я пытаюсь изменить скрипт, в котором я использовал redis-trib. По разным причинам я не могу использовать его сейчас, но я могу использовать redis-CLI.

Дело в том, что когда дело доходит до назначения слотов узлам, это делается блоками или каким-то образом? То есть, если нод 3, я распределяю слоты 16384 между 3 нодами и назначаю оставшиеся на последнюю. Или я должен пройти через другой процесс.

Большое спасибо.


Редактировать:

Я спрашиваю, потому что я смотрю неофициальную документацию (я ничего не видел об этом в официальной, которая не использовала redis-trib), которая показывает следующее:

for slot in {0..5461}; do redis-cli -p 7000 CLUSTER ADDSLOTS $slot > /dev/null; done;
for slot in {5462..10923}; do redis-cli -p 7001 CLUSTER ADDSLOTS $slot > /dev/null;; done;
for slot in {10924..16383}; do redis-cli -p 7002 CLUSTER ADDSLOTS $slot > /dev/null;; done;

Я не знаю критериев, на которых основано это распределение.


person Hugo L.M    schedule 30.07.2018    source источник
comment
Если вы можете использовать redis-cli из v5, в него включены (и улучшены) функциональные возможности redis-trib. Возможно, это проще, чем разрабатывать свои собственные.   -  person Itamar Haber    schedule 30.07.2018
comment
не могу обновить версию. Это образ RedHat.   -  person Hugo L.M    schedule 30.07.2018


Ответы (1)


Напоследок выполняю задачу по распределению слотов 16384 с делением по количеству нод. Для остальных незанятых слотов я рассчитываю модуль и распределяю их по возможности поровну между узлами.

В любом случае я стараюсь, чтобы количество слотов на узел было одинаковым или очень похожим, и в любом случае это были смежные слоты.

person Hugo L.M    schedule 20.08.2018