Redis Cluster с настраиваемой конфигурацией кластера

Я хочу создать кластер Redis, в котором только определенные хосты Redis будут ведущими и ведомыми. Также я хочу указать от себя, какой хост должен быть копией какого мастера.
В настоящее время cluster-create команда создает кластер при задании списка hostname:port параметров в любом из мастеров redis. Но это не позволяет нам предоставлять настраиваемую конфигурацию, как нам требуется. Он предлагает нам то, что будет создано, и мы можем утвердить или отменить (не редактировать).

Есть ли простой способ достичь того, что я собираюсь делать?


person Akash    schedule 04.12.2019    source источник


Ответы (1)


Я сам придумал хороший простой способ.

Предположим, мы хотим создать кластер как:

A1-S1 
A2-S2
A3-S3

Где A - главный, а S - соответствующие им подчиненные, и это образует единый кластер. Шаги будут включать.

  • Запишите в nodes.conf перед запуском экземпляров redis, чтобы добавить хэши желаемых слотов после строки connected. Убедитесь, что у ведущего и ведомого устройства одинаковые хэши слотов. Сделайте это только для строки, содержащей myself. Это будет выглядеть примерно так:
Earlier:
a252d572140fd2b5410d4a63d051f1e6613cfd1f :6379@16379 myself,slave 0 0 0 connected

Final:
a252d572140fd2b5410d4a63d051f1e6613cfd1f :6379@16379 myself,slave 0 0 0 connected 0-5500

После этого запустите экземпляры Redis.

  • Теперь один за другим собираются кластеры для каждой пары ведущий и ведомый. Сделайте по 3 cluster meet для A1, A2 и A3 для соответствующих ведомых устройств. Это соединяет ведущий и ведомый.
  • Если случайно ведущий становится ведомым после операции встречи, выполните cluster failover от ведомого, чтобы сделать его ведущим.
  • Наконец, запустите еще 2 cluster meet для A1-A2 и A2-A3.

Таким образом вы получите кластер нужной вам конфигурации.

person Akash    schedule 06.12.2019