Що таке Redis Cluster?
Redis Cluster - це режим роботи Redis, у якому дані автоматично розподіляються між кількома вузлами (серверними інстансами), щоб забезпечити масштабування й відмовостійкість.
Головна ідея
У звичайному Redis - усі дані зберігаються на одному сервері. У Redis Cluster - ключі діляться між вузлами за хеш-слотами (всього 16384 слоти). Кожен master-вузол відповідає за певний діапазон слотів.
Приклад:
javascript
master1 → слоти 0-5460
master2 → слоти 5461-10922
master3 → слоти 10923-16383Архітектура
- Кожен master зберігає частину даних.
- У кожного master є одна чи кілька реплік (replicas).
- Репліки автоматично переходять у роль master при збої основного вузла.
Таким чином:
javascript
master1 → replica1
master2 → replica2
master3 → replica3Як це працює
- Клієнт підключається до будь-якого вузла кластера.
- Вузол визначає, якому слоту належить ключ (за хеш-функцією CRC16).
- Якщо слот перебуває в іншого master - повертається відповідь MOVED, і клієнт перенаправляється до потрібного вузла.
- При падінні master одна з його реплік автоматично стає новим master.
Що дає Redis Cluster
- Масштабування по горизонталі - можна додавати вузли, і дані будуть перерозподілятися.
- Відмовостійкість - при падінні master його replica бере керування на себе.
- Автоматична маршрутизація - клієнти знають, де шукати потрібний ключ.
Обмеження
- Не всі команди підтримуються (наприклад,
MULTI/EXECз кількома ключами з різних слотів). - Вимагає коректного клієнтського драйвера, що вміє працювати з кластером.
- Частина даних може бути тимчасово недоступна, якщо master і всі його репліки впадуть.
Підсумок
Redis Cluster - це вбудована в Redis розподілена система, де дані діляться на 16384 слоти між кількома master'ами з репліками, забезпечуючи масштабування, відмовостійкість і автоматичне відновлення без зовнішніх інструментів на кшталт Sentinel.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.