Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Каковы лучшие практики для настройки Redis Cluster


Каковы лучшие практики для настройки Redis Cluster


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

Архитектура кластера и конфигурация узлов

Redis Cluster требует как минимум трех главных узлов для надежного работы. В идеале, производственный кластер должен содержать как минимум шесть узлов, причем каждый мастер имеет одну или несколько реплик. Эта настройка обеспечивает высокую доступность, позволяя автоматическому отказоустойчивости в случае сбоя какого -либо мастер -узла. Каждый узел работает в режиме кластера и должен иметь определенные конфигурации, включая:

- `с поддержкой кластера Yes`, чтобы включить режим кластера в каждом экземпляре Redis.
-`cluster-config-file`, определяющий файл, в котором сохраняется состояние кластера узла (например,` nodes.conf`).
-`cluster-timeout` Определение максимального времени, которое узел может быть недоступным, прежде чем считаться неудачным (обычно устанавливается до 5000 до 15000 миллисекунд).

«Cluster-Config-File» управляется Redis автоматически и не должен редактировать вручную, поскольку он поддерживает информацию о критическом состоянии, такую ​​как идентификаторы узлов, сопоставления и владение слотами. Каждый узел присваивает себе уникальный идентификатор узла при запуске, который сохраняется в течение своего срока службы, даже если IP или порт меняется.

Аппаратное и сетевое настройка

Узлы должны быть развернуты на отдельных физических или виртуальных машинах, чтобы избежать отдельных точек отказа. Сетевое подключение между узлами должно разрешать оба порта связи с клиентами (обычно TCP 6379 или используемый сервисный порт) и порт шины кластера (второй порт обычно сервисный порт TCP + 10000, например, 16379) для коммуникации интернета кластера.

Тщательно настроите сетевые интерфейсы и брандмауэры, чтобы разрешить этот трафик между узлами и необязательно между клиентами и узлами кластера. Установка директивы «Bind» на конкретные частные IPS, а не привязка ко всем интерфейсам повышает безопасность.

Постоянство и долговечность данных

Включите механизмы стойкости, такие как снимки RDB или AOF (добавление только файл) в зависимости от необходимых данных и компромиссов производительности. AOF обеспечивает лучшую долговечность, регистрируя каждую операцию записи, но может добавить задержку и накладные расходы ввода. Комбинирование снимков RDB с AOF может помочь сбалансировать производительность и долговечность.

Директива «adprendonly yes`» позволяет режим AOF. Эти настройки должны быть тщательно настроены в соответствии с шаблонами рабочей нагрузки и приемлемыми окнами потери данных.

Политики памяти и выселения

Настройте настройку `maxmemory`, чтобы убедиться, что Redis вписывается в доступную память на узле. Выберите соответствующую политику выселения, используя «maxmemory-policy», такой как «Allkeys-Lru», для использования наименьшего недавно используемого алгоритма во всех клавишах, когда достигаются пределы памяти. Последовательный мониторинг использования памяти и коэффициента попадания/промахи имеет решающее значение.

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

Управление слотом и распределение данных

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

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

Используйте такие инструменты, как `redis-cli-кластер Create` для начальной загрузки с надлежащим распределением слотов и назначением реплики автоматически.

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

Настройте клиентские библиотеки для обработки топологии Redis Cluster, изящно изменяются. Многие клиентские библиотеки обеспечивают поддержку кластера, включая автоматическое обнаружение и реконфигурацию узлов кластера, когда они терпят неудачу или перестановлены слоты. Это предотвращает ошибки клиента и повышает надежность во время отказов узлов или операций масштабирования.

Клиенты должны быть настроены для повторения перемещения или спросить перенаправления и поддерживать обновленные представления о состоянии кластера.

Соображения безопасности

Защитные узлы кластера, включив аутентификацию пароля (`reptepass` Directive), ограничивая доступ к сети через правила брандмауэра и ограничивая открытые интерфейсы через конфигурацию` bind`. Используйте шифрование TLS, если это возможно, чтобы защитить данные при транспортировке.

Отключите защищенный режим при запуске REDIS в режиме кластера, но убедитесь, что конфигурации сети изолируют кластер от ненадежных клиентов.

Мониторинг и обслуживание

Внедрить комплексный мониторинг здоровья кластера, включая доступность узлов, задержку, использование памяти, задержку репликации и изменения состояния кластера. Такие инструменты, как Redis Sentinel, сторонние платформы мониторинга или облачные решения, должны быть частью операционной стратегии.

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

Performance Tuning

Tune Redis и конфигурация кластера на основе специфики рабочей нагрузки:

- Минимизируйте команды блокировки и используйте сценарии трубопроводов или сценариев LUA для оптимизации пропускной способности.
-Регулируйте `cluster-timeout` в соответствии с характеристиками задержки сети, чтобы избежать ложных отказов.
- Используйте последовательное хеширование и смарт -клавиш для оптимизации распределений слотов.
- Избегайте больших ключей или значений и рассмотрите возможность разбивания больших объектов на более мелкие куски.
- Используйте нативные механизмы Redis Cluster для масштабирования горизонтали, добавив или удаляя узлы и слоты для перебалансировки.

резервное копирование и восстановление

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

Для восстановления используйте процедуры, рекомендованные Redis для реконструкции кластеров из сохраненных конфигураций и резервных копий.

Краткое содержание

Лучшие практики для обложки конфигурации Cluster Redis:

- Настройка как минимум трех главных узлов с репликами для отказа от неудачи.
-Обеспечение правильных связанных с кластером директивами конфигурации (`cluster-inabled`,` cluster-config-file`, `cluster-timeout ').
- Развертывание узлов на подходящем аппаратном обеспечении с правильными настройками сети для связи с клиентами и кластерной шиной.
- Включение политики настойчивости и настройки памяти и выселения в соответствии с требованиями рабочей нагрузки.
- Эффективное управление лотами хеш-слотов и обеспечение того, чтобы клиенты были в кластере.
- Обеспечение кластера с помощью аутентификации и сетевых элементов управления.
- Регулярно мониторинг здоровья и производительности кластера.
- Тщательно планирование резервного копирования, восстановления и масштабирования.

Применение этих лучших практик обеспечивает надежную, масштабируемую и высокодоступную среду Cluster Cluster, подходящую для рабочих нагрузок. Приведенные выше темы охватывают основные оперативные, архитектурные и безопасные соображения для развертывания кластеров Redis.