Як реплікація впливає на продуктивність?
Реплікація в Redis одночасно покращує й ускладнює продуктивність - усе залежить від того, з якого боку дивитися: читання, запис чи мережу.
1. Читання - прискорюється
-
Репліки можуть обслуговувати запити лише на читання, розвантажуючи master.
-
За великої кількості клієнтів можна розподілити навантаження:
javascriptmaster → лише запис replicas → лише читання -
Це масштабує систему горизонтально й підвищує загальну пропускну здатність.
Висновок: реплікація значно підвищує продуктивність за читанням.
2. Запис - трохи сповільнюється
- Master має передавати потік змін усім репліками.
- Це вимагає мережевих ресурсів і трохи процесорного часу.
- За великої кількості реплік навантаження на master росте пропорційно їхній кількості.
Висновок: при збільшенні кількості реплік master може сповільнюватися через розсилку даних.
3. Мережа - стає більш навантаженою
- Кожне оновлення передається мережею всім репліками.
- Якщо даних багато (наприклад, великі ключі, часті записи), трафік може стати відчутним.
- За каскадної реплікації частину навантаження можна перерозподілити.
Висновок: мережа - головне вузьке місце за великого обсягу даних.
4. Затримки між вузлами
- Через асинхронність репліка може відставати від master на частки секунди чи більше.
- Це не впливає на швидкість master, але знижує узгодженість даних при читанні з реплік.
Підсумок:
Реплікація прискорює читання, трохи сповільнює запис, збільшує навантаження на мережу, але загалом робить систему масштабованою й стійкою. У Redis вона оптимізована так, щоб вплив на продуктивність master лишався мінімальним.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.