Skip to main content

З чого складається 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 → replica3

3. Механізм розподілу даних - хеш-слоти

  • Усі ключі Redis Cluster розподіляються по 16384 хеш-слотах.

  • Кожен master відповідає за частину цих слотів.

  • Розподіл виконується за формулою:

    javascript
    CRC16(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 складається з:

  1. Кількох master-вузлів - зберігають дані.
  2. Їхніх реплік - забезпечують відмовостійкість.
  3. Механізму хеш-слотів - розподіляє ключі.
  4. Gossip-протоколу - зв'язує всі вузли.
  5. Фейловеру й клієнтської маршрутизації - підтримують безперервну роботу й масштабування.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.