Skip to main content

Як працює каскадна реплікація в Redis?

Каскадна реплікація (cascading replication) у Redis - це схема, за якої репліка сама може виступати джерелом даних для інших реплік.

Як це влаштовано

Зазвичай усі репліки підключаються напряму до master. Але в каскадній схемі:

  • одна чи кілька реплік підключаються до іншої репліки,
  • а та, своєю чергою, отримує дані від master.

Тобто ланцюжок виглядає так:

javascript
master → replica1 → replica2 → replica3

Як працює синхронізація

  1. Master передає дані replica1.
  2. Replica1, синхронізувавшись, стає джерелом для replica2.
  3. Усі оновлення, що надходять на master, передаються далі по ланцюжку.
  4. Кожна репліка підтримує власне зміщення (replication offset), щоб розуміти, які дані вже отримано.

Навіщо це потрібно

  1. Зниження навантаження на master - не всі репліки підключаються до нього напряму.
  2. Масштабування за читанням - можна будувати багаторівневу структуру, де нижні рівні обслуговують запити читання.
  3. Гнучкість у географічному розподілі - наприклад, найближчий до регіону дата-центр отримує дані не від master, а від проміжної репліки.

Недоліки

  • Затримка оновлень зростає з довжиною ланцюжка.
  • Якщо "проміжна" репліка падає - усі її "дочірні" втрачають джерело синхронізації.
  • Redis не керує цією структурою автоматично - адміністратор сам вказує, від кого кожна репліка має реплікуватися (REPLICAOF host port).

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

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

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

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