Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «З чого складається Redis Cluster?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Redis Cluster складається з master-вузлів (зберігають дані, кожен відповідає за свій діапазон із 16384 хеш-слотів), replica-вузлів (резерв, автоматично стають master при збої), механізму хеш-слотів (`CRC16(key) % 16384`) і Gossip-протоколу, через який вузли обмінюються станом без центрального координатора. **Ключове:** клієнтські драйвери мають розуміти відповіді `MOVED` і `ASK`, щоб автоматично перенаправлятися до потрібного master, коли ключ знаходиться на іншому вузлі; уся система самокоординується через Gossip.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**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. **Фейловеру й клієнтської маршрутизації** - підтримують безперервну роботу й масштабування.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.