Spec-Zone.ru › Redis

КЛАСТЕР

CLUSTER ADDSLOTS
Синтаксис
CLUSTER ADDSLOTS slot [slot ...]
Доступно с версии:
3.0.0
Временная сложность:
O(N), где N — общее число аргументов хэш-слотов
Категории ACL:
@admin, @slow, @dangerous,

Эта команда полезна для изменения представления узла о конфигурации кластера. В частности, она назначает набор хэш-слотов узлу, получившему команду. Если команда выполняется успешно, узел отобразит указанные хэш-слоты на себя и начнёт трансляцию новой конфигурации.

Однако обратите внимание, что:

  1. Команда работает только в том случае, если все указанные слоты, с точки зрения узла, получающего команду, в настоящее время не назначены. Узел откажется принять владение слотами, которые уже принадлежат какому-либо другому узлу (включая самого себя).
  2. Команда завершается ошибкой, если один и тот же слот указан несколько раз.
  3. В качестве побочного эффекта выполнения команды, если какой-либо слот, указанный в качестве аргумента, установлен в 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:

  1. Для создания нового кластера используется ADDSLOTS, чтобы первоначально настроить узлы-мастера, разделив доступные хэш-слоты между ними.
  2. Для исправления сломанного кластера, где определенные слоты не назначены.

Информация о распространении слотов и предупреждения

Обратите внимание, что после того, как узел назначит набор слотов себе, он начнёт распространять эту информацию в заголовках пакетов 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API