Skip to main content

Як Redis Cluster масштабується горизонтально?

Redis Cluster масштабується горизонтально за рахунок розподілу ключів по множині вузлів (master'ів), де кожен вузол зберігає частину загального набору даних.

Ось як це влаштовано:

1. Дані розбиваються на 16384 хеш-слоти

  • Redis Cluster ділить увесь простір ключів на 16384 логічних слоти.

  • Кожен master-вузол отримує певну кількість цих слотів. Наприклад:

    javascript
    master1 → 0-5460 master2 → 5461-10922 master3 → 10923-16383
  • Коли клієнт записує чи читає ключ, Redis обчислює хеш (CRC16(key) % 16384) і визначає, у якому слоті він має бути.

Результат: кожен вузол зберігає лише частину даних, а не весь обсяг.

2. Додавання нових вузлів

Коли даних стає більше:

  • адміністратор додає новий вузол (master) до кластера,
  • і Redis перерозподіляє частину слотів з наявних master'ів на новий.

Це робиться за допомогою команди:

bash
redis-cli --cluster reshard <host>:<port>

Під час міграції дані автоматично переносяться між вузлами, не вимагаючи зупинки кластера.

3. Балансування навантаження

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

Якщо якийсь вузол перевантажений - слоти можна перемістити вручну чи автоматично.

4. Читання з реплік

Кожен master має одну чи кілька реплік, які можна використовувати для масштабування читання. Таким чином:

javascript
master → запис replicas → читання

5. Масштабування без єдиної точки відмови

Redis Cluster не має центрального координатора: усі вузли знають про розподіл слотів і можуть перенаправляти запити один одному.

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

Підсумок

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

Це забезпечує:

  • лінійне зростання продуктивності при додаванні серверів,
  • рівномірне навантаження,
  • і відмовостійкість за рахунок реплік.

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

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

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