Назад до блогу

High‑load без паніки: стратегія кешування (Redis/CDN) та інвалідація

Як знімати навантаження з БД і API: CDN, кеш на edge, Redis, ключі/TTL, cache stampede, інвалідація та метрики, щоб кеш реально працював.

3 бер. 2026 р.

Кеш — це не “увімкнути Redis”, а спроєктувати правила

При high‑load проблеми часто вирішуються не “потужнішим сервером”, а правильним кешуванням. Але кеш без інвалідації і метрик швидко перетворюється на джерело багів.

1) Рівні кешу

  • CDN/edge для статичних сторінок/медіа та частини API.
  • Application cache (Redis) для довідників, профілів, конфігів.
  • DB cache (індекси, матеріалізовані представлення) — коли дані складні.

2) Ключі та TTL

  • Ключ має включати параметри: locale, tenant, role, filters.
  • TTL різний для різних даних: довідники — довше, ціни/залишки — коротше.

3) Інвалідація: 3 практичні підходи

  • Time-based: “сам протухне” — простий, але не завжди точний.
  • Event-based: подія “ціна змінилась” → очищаємо ключі.
  • Versioning: додаємо версію в ключ (user:123:v7) — зручно при масових змінах.

4) Захист від cache stampede

  • Singleflight/locking на перерахунок.
  • Stale‑while‑revalidate: віддаємо старе, але оновлюємо в фоні.

5) Метрики

Без hit rate, latency і error rate ви не знаєте, чи кеш допомагає. Додай метрики по ключових групах ключів.

Підсумок

Кешування дає найбільший ефект у high‑load, коли є правила ключів/TTL, стратегія інвалідації і метрики. Тоді навантаження знімається керовано, без “магії”.

Релевантні статті