TGViewer
System Design World System Design World @system_design_world · 5.97K subscribers
Post #580 2.79K
❗️ Готовим кэш правильно!

📈С ростом нагрузки одни и те же запросы к БД становятся узким местом.
Кто обитает на дне океана🤨 поможет нам в такой ситуации?

❗️Кэш!
Ставим рядом с приложением и базой:
⁍ Горячие данные под рукой
⁍ В БД ходим только при необходимости

❓ Следующий вопрос - как правильно с ним взаимодействовать?
С новым элементом приходят три независимых вопроса:
∙ Как читать?
∙ Как писать?
∙ Как инвалидировать данные?


Для конкретной задачи - это три независимых выбора.
Правильный ответ зависит от приоритетов: консистентность, скорость, простота.

👩🏻‍🦰👨🏻‍🦰 Пример: профиль пользователя
Профиль читается очень часто, почти при каждом запросе (аватарка, имя, настройки). Меняется редко. Пользователь обновил данные в настройках. После изменения новое значение должно быть видно сразу.

1) Чтение. Выбираем паттерн Cache-Aside.
➕ Простая реализация: достаточно Redis и нескольких строк кода, без сложной обвязки.
➕ Устойчивость к падению кэша: если Redis недоступен, приложение продолжает работать через БД.
➖ Первый запрос к "холодному" ключу приводит к cache miss: запрос идёт в БД и только потом прогревает кэш.
2) Запись. Выбираем паттерн Write-Through.
➕ После успешной записи данные в кэше и БД сразу синхронизированы.
➕ Одна точка обновления: не нужно отдельно думать об инвалидации при записи.
➖ Запись медленнее: оплачиваем и кэш, и БД. Для частых записей это может быть критично, но у профиля записи редкие.
3) Инвалидация. Выбираем TTL (например, час).
В данном случае стратегия записи Write-Through обеспечивает актуальность данных в кэше. TTL можно добавить для автоматической очистки ключей по истечении времени жизни.

✍️ Вывод
У кэша нет "правильного" паттерна на все случаи.
Есть три направления: чтение, запись, инвалидация. Под каждую задачу собирается своя комбинация.
  • 👍 10
  • 🔥 6
  • ❤ 4
  • 👏 2
More from @system_design_world
  1. Sep 24, 2026🤖 AI-агент как System Design задача. Что скрыто под этим громким названием AI-агент? Сооб…
  2. Sep 22, 2026🛒 Мои отношения с Т-Банком. Part II. System Design 📕 Для подготовки к System Design Инте…
  3. Sep 21, 2026🛒 Мои отношения с Т-Банком. Part I 2019 год. Собеседование. Трушное в офисе. На северо-за…
  4. Sep 19, 2026AI System Design Интервью в Т-Банк. Первое в рунете. Эксклюзив для участников сообщества.…
  5. Sep 16, 2026🤷‍♂️ Что находится на серверной стороне AI? ⚡️ Огромную ИИ инфраструктуру нужно поддержив…
  6. Sep 14, 2026🔠🔠🔠 CAP в System Design Что это? ➡️Теорема Сложная? ➡️Нет Для чего полезно знать? ☑️Для…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →