З чого складається Redis Cluster?
Redis Cluster складається з кількох типів вузлів і службових механізмів, які разом забезпечують масштабування, відмовостійкість і автоматичне відновлення.
1. Master-вузли (головні)
- Основні робочі вузли, які зберігають дані.
- Кожен master відповідає за певний діапазон хеш-слотів (з 16384 можливих).
- Обробляють записи й читання.
Приклад:
javascript
master1 → слоти 0-5460
master2 → слоти 5461-10922
master3 → слоти 10923-16383Якщо master падає - одна з його реплік автоматично стає новим master.
2. Replica-вузли (репліки)
- Копіюють дані конкретного master і слугують резервом.
- У звичайному режимі лише читають дані, але при збої свого master виконують автоматичний фейловер і стають новим master.
- Реплікація асинхронна.
Приклад:
javascript
master1 → replica1
master2 → replica2
master3 → replica33. Механізм розподілу даних - хеш-слоти
-
Усі ключі Redis Cluster розподіляються по 16384 хеш-слотах.
-
Кожен master відповідає за частину цих слотів.
-
Розподіл виконується за формулою:
javascriptCRC16(key) % 16384 -
Це дозволяє кластеру точно знати, де зберігається кожен ключ.
4. Gossip-протокол (взаємодія вузлів)
- Вузли кластера обмінюються між собою станом через вбудований протокол Gossip.
- Кожен вузол регулярно повідомляє решту:
- хто він (master/replica),
- які слоти обслуговує,
- які вузли доступні чи недоступні.
Це дозволяє Redis Cluster працювати без центрального керуючого сервера - система самокоординується.
5. Механізм фейловеру
- Якщо master недоступний, його replica отримує підтвердження від більшості інших master'ів і стає новим master.
- Решта вузлів дізнаються про це через Gossip і оновлюють метадані.
6. Клієнти, що підтримують кластер
- Клієнти Redis (драйвери) мають розуміти повідомлення
MOVEDіASK. - Коли ключ перебуває на іншому вузлі, клієнт автоматично перенаправляється до потрібного master.
Підсумкова структура Redis Cluster
javascript
master1 → replica1
master2 → replica2
master3 → replica3
↓
(усі вузли пов'язані через Gossip)
↓
дані розподілені по 16384 слотахПідсумок: Redis Cluster складається з:
- Кількох master-вузлів - зберігають дані.
- Їхніх реплік - забезпечують відмовостійкість.
- Механізму хеш-слотів - розподіляє ключі.
- Gossip-протоколу - зв'язує всі вузли.
- Фейловеру й клієнтської маршрутизації - підтримують безперервну роботу й масштабування.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.