Конфигурация Redis-кластера

кластер

  • Redis имеет три режима кластера

  • режим ведущий-ведомый

  • Режим стража

  • Кластерный режим

  • Недостатки репликации master-slave

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

  • Недостатки сторожевого режима

  • Когда мастер повесит трубку, Sentinel выберет мастера.Во время выборов нет возможности получить доступ к Redis, и будет кратковременное прерывание доступа;

  • В режиме Sentinel только главный узел может писать извне, а подчиненный узел может использоваться только для чтения. Несмотря на то, что один узел Redis поддерживает до 10 Вт запросов в секунду, во время рекламных акций электронной коммерции все требования по записи данных ложатся на главный узел.

  • Память одного узла Redis не может быть установлена ​​слишком большой.Если данные слишком велики, синхронизация master-slave будет очень медленной, когда узел запускается, время особенно велико;

①, репликация Redis master-slave

  • Что такое master-slave репликация

Репликация master-slave относится к копированию данных одного сервера Redis на другие серверы Redis. Первый называется главным узлом (master), а второй — подчиненным узлом (slave).Репликация данных односторонняя и может осуществляться только от главного узла к подчиненному узлу.

  • Роль репликации master-slave
  1. Избыточность данных: репликация ведущий-ведомый реализует горячее резервное копирование данных, что является методом избыточности данных, отличным от сохраняемости.
  2. Восстановление после сбоя: когда у главного узла возникает проблема, подчиненный узел может предоставить услуги для быстрого устранения сбоя; фактически это своего рода резервирование услуг.
  3. Балансировка нагрузки: на основе репликации master-slave в сочетании с разделением чтения и записи главный узел может предоставлять услуги записи, а подчиненные узлы могут предоставлять услуги чтения (то есть приложение подключается к главному узлу при записи данных Redis). , и приложение подключается к подчиненному узлу при чтении данных Redis), чтобы разделить нагрузку на сервер; особенно в сценарии меньшего количества записей и большего чтения разделение нагрузки чтения через несколько подчиненных узлов может значительно увеличить параллелизм сервера Redis.
  4. Краеугольный камень высокой доступности. В дополнение к вышеперечисленным функциям репликация «ведущий-ведомый» также является основой для реализации сигнальных систем и кластеров, поэтому репликация «главный-подчиненный» является основой высокой доступности Redis.
  • Репликация master-slave может быть разделена на 3 этапа.
  1. Этап установления соединения (т.е. этап подготовки)
  2. Этап синхронизации данных
  3. Этап распространения команды
  • Стратегия синхронизации ведущий-ведомый

При только что подключенном master-slave выполняется полная синхронизация, после полной синхронизации выполняется инкрементная синхронизация. Разумеется, при необходимости ведомое устройство может в любой момент инициировать полную синхронизацию. Стратегия Redis заключается в том, что, несмотря ни на что, он сначала попытается выполнить инкрементную синхронизацию, если это не удастся, ведомая машина должна выполнить полную синхронизацию.

автономная конфигурация

①, напишите файл конфигурации

Новый redis6379.conf

# 修改配置文件
vim redis6379.conf

# 修改内容
include /usr/local/redis-6.2.6/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

Новый redis6380.conf

# 修改配置文件
vim redis6379.conf

# 修改内容
include /usr/local/redis-6.2.6/redis.conf
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb

Новый redis6381.conf

# 修改配置文件
vim redis6379.conf

# 修改内容
include /usr/local/redis-6.2.6/redis.conf
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb

②, начать

# 分别启动三台redis
./redis-server ../redis6379.conf
./redis-server ../redis6380.conf
./redis-server ../redis6381.conf

③, из настроек библиотеки

Настройте подчиненную библиотеку, но не главную библиотеку

# slaveof <ip> <port> - ip: 主库地址,port: 主库端口
SLAVEOF 127.0.0.1 6379

④, проверьте статус ведущий-ведомый

Просмотр информации о состоянии после выполнения slaveof

# 查看连接信息
info replication

②, дозорный режим Redis

  • технология переключения ведущий-ведомый

Когда главный сервер не работает, необходимо вручную переключить подчиненный сервер на главный сервер, что требует ручного вмешательства, что является трудоемким и приведет к недоступности службы в течение определенного периода времени. Это не рекомендуемый способ, чаще мы отдаем приоритет дозорному режиму.

  • Обзор часового

Режим Sentinel — это особый режим. Во-первых, Redis предоставляет команды Sentinel. Sentinel — это независимый процесс. Как процесс, он будет работать независимо. Принцип заключается в том, что Sentinel отслеживает несколько запущенных экземпляров Redis, отправляя команды и ожидая ответа сервера Redis.

  • Роль часового
  1. Мониторинг кластера: отвечает за контроль за тем, нормально ли работают главные и подчиненные процессы Redis.
  2. Уведомление о сообщении: если экземпляр redis выходит из строя, часовой отвечает за отправку сообщения в качестве уведомления о тревоге администратору.
  3. Аварийное переключение: если главный узел зависает, он автоматически переходит на подчиненный узел.
  4. Центр конфигурации: если произойдет аварийное переключение, уведомите клиента о новом главном адресе.

дозорное здание

①, создайте часового

Создайте новый файл sentinel-26379.conf

Другие клиенты также должны быть настроены

  • параметр:
  1. дозорный монитор mymaster 192.168.92.128 6379 2 Значение конфигурации: дозорный узел отслеживает главный узел 192.168.92.128:6379, имя главного узла — mymaster, а значение последних 2 связано с оценкой отказа главного узла: как минимум 2 узла Sentinel соглашаются определить сбой основного узла и выполнить аварийное переключение.

    изменить файл

    Vim Sentinel-26379.conf

    Изменить содержимое

    порт

    порт 26379

    демон работает

    демонизировать да

    журнальный файл

    лог-файл «26379.log»

    Имя контролируемого главного узла (mymaster) IP-адрес главного узла (192.168.66.11) Порт главного узла (6379) половина всех узлов+1(2)

    дозорный монитор mymaster 192.168.66.11 6379 2

②, запустите часового

# 启动哨兵
cd /.../src
./redis-sentinel ../sentinel-26379.conf

# 查看状态
./redis-cli -p 26379
info sentinel

③, Кластерный режим

Кластер Redis — это кластер распределенных служб, состоящий из нескольких групп узлов master-slave, который обладает характеристиками репликации, высокой доступности и фрагментации. Для построения кластера Redis требуется как минимум 3 главных узла.Здесь мы создаем 3 главных узла, к каждому из которых прикреплен подчиненный узел, всего 6 узлов Redis;

Конфигурация кластера

①, настройте файл кластера

  • Измените следующее содержимое файла redis.conf [Все клиенты должны быть настроены]

    Измените следующее содержимое файла redis.conf

    ВИМ /…/redis.conf

    Изменить содержимое

    порт 8001
    демонизировать да
    pidfile «/var/run/redis_8001.pid».

    Укажите место хранения файла данных, необходимо указать другое расположение каталога, иначе данные будут потеряны

    каталог /usr/local/redis/redis-кластер/8001/

    Запустить кластерный режим

    с поддержкой кластера да

    Файл информации об узле кластера, где 800x лучше всего соответствует порту

    файл конфигурации кластера nodes-8001.conf

    Тайм-аут для узла в автономном режиме

    время ожидания узла кластера 5000

    Удалить привязку для доступа к информации об IP

    привязать 127.0.0.1

    Отключить защищенный режим

    защищенный режим нет

    Запустить файл AOF

    приложениетолько да

    Если вы хотите установить пароль, вам необходимо добавить следующую конфигурацию:

    Установить пароль доступа Redis

    требуется пройти

    Установите пароль доступа между узлами кластера в соответствии с приведенным выше

    мастераут

②, создайте кластер

  • параметр:
  1. -а: пароль

  2. – кластерные реплики:

    • –cluster-replicas 1: указывает, что 1 ведомое устройство подключено к 1 ведущему устройству;
    • –cluster-replicas 2: указывает, что 2 ведомых устройства подключены к 1 ведущему.

    запускать

    /usr/local/redis/src/redis-cli -a redis-pw —
    создание кластера --cluster-replicas 1 192.168.66.101:8001 192.168.66.101:8002 192.168.66.102:8001 192.168.66.102:8002 192.1 68.66.103: 8001 192.168.66.103:8002

③, просмотреть команду справки

  • параметр:
  1. create: создать кластерную среду host1:port1 ... hostN:portN

  2. вызов: может выполнить команду redis

  3. add-node: добавить узел в кластер, первый параметр — это ip:port нового узла, а второй параметр — это ip:port любого существующего узла в кластере.

  4. del-node: удалить узел

  5. осколок: осколок

  6. check: проверить состояние кластера

    просмотреть справку

    src/redis-cli --cluster help

④, проверьте кластер

подключиться к любому клиенту

  • параметр:
  1. ‐a указывает пароль сервера

  2. -c означает кластерный режим

  3. -h указывает IP-адрес

  4. -p указывает номер порта

    подключить клиент

    /usr/local/redisd/src/redis-cli -a redis-pw -c -h 192.168.66.101 -p 8001

⑤ Просмотр информации о кластере

cluster info

рекомендация

отblog.csdn.net/qq_56571862/article/details/128904404