Skip to content
🚀 20% OFF for new customers on Linux and Windows servers! Code: ILK20  |  Order Now →
database Управление базами данных

Установка и масштабирование Redis Cluster

Настройте высокопроизводительную и масштабируемую инфраструктуру баз данных с Redis Cluster. Пошаговая установка, настройка и советы по масштабированию.

person
Editör
(Обновлено: 10 сен 2026) schedule 4 мин чтения visibility 10 просмотров

Redis Cluster — это архитектура, которая автоматически распределяет ваши данные по нескольким узлам и обеспечивает высокую доступность. Она предлагает незаменимое решение для крупномасштабных приложений. В этой статье мы шаг за шагом рассмотрим установку Redis Cluster и этапы масштабирования. Если вы используете Redis на одном сервере, переход на Cluster даст вам больше гибкости и отказоустойчивости.

Что такое Redis Cluster?

Redis Cluster делит данные на 16384 хэш-слота и распределяет эти слоты между узлами. Каждый узел управляет только своими слотами. Например, в кластере из 3 узлов слоты распределяются примерно как 5461, 5461 и 5462. Благодаря этому распределению ключи автоматически направляются на правильный узел.

Преимущества Cluster

  • Высокая производительность: Операции не нагружают одну точку, нагрузка распределяется.
  • Автоматическое шардирование: Вам не нужно вручную разбивать данные.
  • Высокая доступность: Вы можете определить реплики (резервные узлы) для каждого узла, чтобы предотвратить прерывание обслуживания в случае сбоя.
  • Легкое масштабирование: Вы можете добавлять узлы и перераспределять слоты для увеличения емкости.

Шаги по установке Redis Cluster

1. Подготовка среды

Я рекомендую использовать как минимум 3 основных узла (master) и, в рекомендуемой конфигурации, по одной реплике для каждого master — всего 6 узлов. Выделите отдельный сервер Linux (или контейнер Docker) для каждого узла. Например, используем следующие IP-адреса:

  • 10.0.0.1:7000 (master1)
  • 10.0.0.2:7000 (master2)
  • 10.0.0.3:7000 (master3)
  • 10.0.0.1:7001 (replica1)
  • 10.0.0.2:7001 (replica2)
  • 10.0.0.3:7001 (replica3)

Скомпилируйте Redis из исходных кодов или установите с помощью менеджера пакетов на каждом узле. Затем создайте файл redis.conf для каждого узла. Для включения режима кластера добавьте следующие настройки:

port 7000 cluster-enabled yes cluster-config-file nodes-7000.conf cluster-node-timeout 5000 appendonly yes

2. Запуск узлов

Запустите сервер Redis для каждого узла. Например:

redis-server /path/to/redis-7000.conf

Для проверки выполните команду redis-cli -p 7000 ping. Каждый узел должен ответить PONG.

3. Создание кластера

Создайте кластер с помощью утилиты redis-cli. Следующая команда создает кластер из 3 master и 3 replicas:

redis-cli --cluster create 10.0.0.1:7000 10.0.0.2:7000 10.0.0.3:7000 10.0.0.1:7001 10.0.0.2:7001 10.0.0.3:7001 --cluster-replicas 1

Эта команда выбирает master и назначает каждому реплику. В процессе вас попросят подтвердить распределение слотов. Введите «yes» и нажмите Enter.

4. Проверка состояния кластера

Для проверки установки используйте следующую команду:

redis-cli --cluster check 10.0.0.1:7000

В выводе вы увидите состояние всех узлов, распределение слотов и связи реплик. Также можете использовать команды cluster info и cluster nodes для получения подробной информации.

Шаги по масштабированию

Добавление нового узла

Предположим, вы хотите добавить новый master-узел в существующий кластер. Подготовьте новый сервер (например, 10.0.0.4:7000) и запустите Redis в режиме кластера. Затем добавьте узел в кластер следующей командой:

redis-cli --cluster add-node 10.0.0.4:7000 10.0.0.1:7000

После этого новый узел будет в состоянии «handshake». У него еще нет слотов. Чтобы перераспределить слоты, выполните:

redis-cli --cluster rebalance 10.0.0.1:7000

Важно: Процесс rebalance пытается равномерно распределить слоты по всем узлам. Если вы хотите дать определенным узлам больше слотов, используйте параметр --cluster-weight.

Добавление реплики

Для добавления новой реплики выполните аналогичные шаги. Сначала запустите узел, затем добавьте его командой:

redis-cli --cluster add-node 10.0.0.4:7001 10.0.0.1:7000 --cluster-slave

Если вы хотите, чтобы реплика была назначена конкретному master, используйте --cluster-slave --cluster-master-id <master-id>.

Удаление узла

Чтобы удалить узел из кластера, сначала необходимо освободить все его слоты. Следующая команда перемещает слоты из исходного узла в целевой:

redis-cli --cluster reshard 10.0.0.1:7000 --cluster-from <node-id> --cluster-to <target-id> --cluster-slots <number-of-slots>

После освобождения слотов удалите узел из кластера:

redis-cli --cluster del-node 10.0.0.1:7000 <node-id>

Производительность и важные замечания

При использовании Redis Cluster важно учитывать следующие моменты:

  • Поддержка клиентов: Убедитесь, что используемая вами клиентская библиотека Redis поддерживает Cluster. Например, популярные библиотеки, такие как Jedis, StackExchange.Redis или redis-py, работают в режиме кластера.
  • Сетевая задержка: Сетевая задержка между узлами может повлиять на производительность. Размещайте узлы в одном центре обработки данных для минимальной задержки.
  • Резервное копирование: Структура кластера может усложнить процесс резервного копирования. Регулярно создавайте резервные копии данных с помощью файлов RDB или AOF.
  • Мониторинг: Используйте команду INFO и redis-cli --cluster check для периодической проверки состояния здоровья кластера.

Заключение

Установка и масштабирование Redis Cluster, выполненные с правильными шагами, предоставят вам гибкую, высокопроизводительную и отказоустойчивую инфраструктуру базы данных. Начните с 3 узлов или расширьтесь до 100 узлов — Redis Cluster является идеальным выбором для ваших растущих приложений. Если вам нужна поддержка в настройке Redis Cluster, вы всегда можете связаться с нами на HostingServer.com.tr.

Поделиться статьёй

Поделиться LinkedIn WhatsApp

Похожие статьи