Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Які найкращі практики налаштування кластера Redis


Які найкращі практики налаштування кластера Redis


Кластер Redis - це популярне рішення для масштабування розгортання Redis для досягнення більшої доступності, толерантності до несправностей та даних, що просвердлюють кілька вузлів. Правильна конфігурація кластера Redis включає кілька найкращих практик, що забезпечують оптимальну продуктивність, надійність та керованість.

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

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

- `Підтримує кластер так, щоб увімкнути режим кластера в кожному екземплярі Redis.
-`Cluster-config-file`, що вказує файл, де зберігається стан вузла кластерів (наприклад,` Quardes.conf`).
-`Кластерний вузол-час, що визначає максимальний час, коли вузол може бути недоступним, перш ніж вважатись невдалим (зазвичай встановлено на 5000 до 15000 мілісекунд).

"Кластер-конфіг-файл" керує Redis автоматично і не повинен відредагований вручну, оскільки він підтримує критичну інформацію про стан, таку як ідентифікатори вузлів, відображення та власність слотів. Кожен вузол призначає собі унікальний ідентифікатор вузла при запуску, який зберігається протягом свого життя, навіть якщо IP або порт змінюється.

налаштування апаратного та мережі

Вузли повинні бути розгорнуті на окремих фізичних або віртуальних машинах, щоб уникнути поодиноких точок невдачі. Мережева підключення між вузлами повинна дозволяти як порти комунікації клієнта (як правило, TCP 6379, або порт сервісу, який використовується), так і порт кластерної шини (другий порт, як правило, порт обслуговування TCP + 10000, наприклад, 16379) для зв'язку з міжнародженими кластерами.

Ретельно налаштуйте мережеві інтерфейси та брандмауери, щоб дозволити цей трафік між вузлами та необов'язково між клієнтами та вузлами кластера. Встановлення директиви `bind` для конкретних приватних IPS, а не прив'язки до всіх інтерфейсів підвищує безпеку.

наполегливість та довговічність даних

Увімкнути механізми стійкості, такі як знімки RDB або AOF (додайте лише файл) залежно від необхідної міцності даних та компромісів ефективності. AOF забезпечує кращу довговічність, реєструючи кожну операцію запису, але може додати затримку та над головою. Поєднання знімків RDB з AOF може допомогти збалансувати продуктивність та довговічність.

Директива `Appendonly Yes` дозволяє режиму AOF. Ці налаштування повинні бути ретельно налаштовані відповідно до шаблонів навантаження та прийнятних вікон втрат даних.

Політика управління пам'яттю та виселення

Налаштуйте налаштування `maxmemory`, щоб забезпечити вписку в наявну пам'ять на вузлі. Виберіть відповідну політику виселення, використовуючи `maxmemory-policy`, наприклад,` allkeys-lru`, щоб використовувати найменш використаний алгоритм у всіх клавішах, коли досягнуті межі пам'яті. Послідовний моніторинг коефіцієнтів використання пам'яті та коефіцієнтів HIT/MISS є критичним.

Кластер Redis найкраще виконує, коли набір даних повністю вписується в пам'ять на кожному вузлі. Уникайте надмірного заміни або перевиконання пам’яті.

Управління слотами та розповсюдження даних

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

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

Використовуйте такі інструменти, як `redis-cli --cluster create 'для завантаження кластерів з належним розподілом слотів та призначенням репліки автоматично.

Конфігурація клієнта для обізнаності про кластер

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

Клієнти повинні бути налаштовані на повторне повторне переміщення або прохання перенаправити та підтримувати оновлені перегляди стану кластера.

міркувань безпеки

Захищені вузли кластерів шляхом включення автентифікації пароля (`Директива FeechPass`), обмеження доступу до мережі за допомогою правил брандмауера та обмеження відкритих інтерфейсів за допомогою конфігурації` bind`. Використовуйте шифрування TLS, якщо це можливо, для захисту даних у транзиті.

Вимкнути захищений режим під час запуску Redis в режимі кластеру, але переконайтесь, що конфігурації мережі виділяють кластер від ненадійних клієнтів.

Моніторинг та обслуговування

Реалізуйте комплексний моніторинг здоров'я кластерів, включаючи доступність вузлів, затримку, використання пам'яті, затримку реплікації та зміни стану кластера. Такі інструменти, як Redis Sentinel, сторонні платформи моніторингу або рішення для постачальників хмар, повинні бути частиною оперативної стратегії.

Регулярно тестуйте механізми відмови та виконуйте керовані вузол перезапустки або вправи для масштабування, щоб перевірити стійкість кластера.

налаштування продуктивності

Налаштування Redis та конфігурації кластера на основі специфіки навантаження:

- Мінімізуйте команди блокування та використовуйте сценарії трубопроводів або LUA для оптимізації пропускної здатності.
-Відрегулюйте `кластерний час-час, відповідно до характеристик затримки мережі, щоб уникнути помилкових відмов.
- Використовуйте послідовне хешування та смарт -ключ для оптимізації розподілів слотів.
- Уникайте великих клавіш або значень і подумайте про розбиття великих предметів на менші шматки.
- Використовуйте нативні механізми Cluster Cluster для масштабування горизонтально, додавши або видаливши вузли та перебалансувати слоти.

Резервне копіювання та відновлення

Стратегії резервного копіювання дизайну, узгоджені з налаштуванням кластера. Використовуйте періодичні знімки RDB з головних вузлів або реплік та зберігайте резервні копії зовні. Уникайте відновлення резервних копій безпосередньо на живому кластері без належної синхронізації стану та вузла.

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

Резюме

Найкращі практики для обкладинки конфігурації кластера Redis:

- Налаштування щонайменше трьох головних вузлів з репліками для відмови.
-Забезпечення належних директив конфігурації, пов'язаних з кластером (`` Cluster-підтримка ', `cluster-config-file`,` cluster-node-timeous`).
- Розгортання вузлів на відповідному обладнанні з правильними налаштуваннями мережі для зв'язку з клієнтською та кластерною шиною.
- Увімкнення наполегливості та налаштування політики пам’яті та виселення відповідає вимогам робочого навантаження.
- Ефективно управління хеш-слотами та забезпечення того, щоб клієнти орієнтовані на кластер.
- Забезпечення кластера за допомогою аутентифікації та управління мережею.
- регулярно моніторинг здоров'я кластерів та продуктивності.
- Планування операцій резервного копіювання, відновлення та масштабування.

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