КЛАСТЕР
CLUSTER ADDSLOTS
CLUSTER ADDSLOTS slot [slot ...]
- Доступно с версии:
- 3.0.0
- Временная сложность:
- O(N), где N — общее число аргументов хэш-слотов
- Категории ACL:
-
@admin,@slow,@dangerous,
Эта команда полезна для изменения представления узла о конфигурации кластера. В частности, она назначает набор хэш-слотов узлу, получившему команду. Если команда выполняется успешно, узел отобразит указанные хэш-слоты на себя и начнёт трансляцию новой конфигурации.
Однако обратите внимание, что:
- Команда работает только в том случае, если все указанные слоты, с точки зрения узла, получающего команду, в настоящее время не назначены. Узел откажется принять владение слотами, которые уже принадлежат какому-либо другому узлу (включая самого себя).
- Команда завершается ошибкой, если один и тот же слот указан несколько раз.
- В качестве побочного эффекта выполнения команды, если какой-либо слот, указанный в качестве аргумента, установлен в
importing, это состояние сбрасывается, как только узел назначит (ранее не привязанный) слот себе.
Пример
Например, следующая команда назначает слоты 1 2 3 узлу, получившему команду:
> CLUSTER ADDSLOTS 1 2 3 OK
Однако попытка повторного выполнения приведет к ошибке, поскольку слоты уже назначены:
> CLUSTER ADDSLOTS 1 2 3 ERR Slot 1 is already busy
Использование в Redis Cluster
Эта команда работает только в режиме кластера и полезна при следующих операциях Redis Cluster:
- Для создания нового кластера используется ADDSLOTS, чтобы первоначально настроить узлы-мастера, разделив доступные хэш-слоты между ними.
- Для исправления сломанного кластера, где определенные слоты не назначены.
Информация о распространении слотов и предупреждения
Обратите внимание, что после того, как узел назначит набор слотов себе, он начнёт распространять эту информацию в заголовках пакетов heartbeat. Однако другие узлы примут информацию только в том случае, если у них слот не привязан к другому узлу или если эпоха конфигурации узла, рекламирующего новый хэш-слот, больше, чем у узла, в настоящее время указанного в таблице.
Это означает, что эту команду следует использовать с осторожностью только приложениям, управляющим Redis Cluster, таким как redis-cli, и если команда используется вне правильного контекста, это может привести к неправильному состоянию кластера или потере данных.
Возвращаемое значение
Простой строковый ответ: OK в случае успешного выполнения команды. В противном случае возвращается ошибка.
© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/cluster-addslots/