TGViewer
Системный анализ на максималках Системный анализ на максималках @system_analysis_max · 880 subscribers
Post #7 843
Просто о кэшировании 🔥

Я боялся кэширования, думал, что это сложно😱. В действительности все не так трудно, но есть нюансы. Давайте разберемся.

➡️ Что такое кэширование?

🏠 Представьте кладовку в доме, где мы храним часто используемые вещи. Мы не везем их в гараж за тридевять земель, потому что эти вещи должны быть под рукой. В IT это называется кэшированием – способ хранения часто используемых данных в быстродоступном месте. Но, в отличие от вещей, через какое-то время этих данных не станет.

➡️ Для чего?

Если вещи дома под рукой, не нужно будет ехать в тот же гараж и тратить время. 💡 Основная идея кэширования – ускорение работы системы, мы получаем нужные данные быстрее, чем если бы ходили в БД. Также снижается нагрузка, а в случае отказа компонента мы все равно получим данные.

➡️ Какие данные кэшируются?

Зависит от частоты их изменения:
Меняются часто, буквально каждую секунду: кэширование бессмысленно. Пример: биржевые котировки
Меняются нечасто, раз в несколько минут или часов: нужно обсудить целесообразность. Пример: курс валют, рейтинг товаров
Меняются редко, раз в несколько дней, недели, месяцы: можно спокойно кэшировать. Пример: коды регионов РФ, список стран и городов

➡️ Где хранится кэш?

Варианты:
– Клиентский кэш (браузер, мобильное приложение)
– Серверный кэш (in-memory cache, Redis)
– Распределенный кэш (CDN)

Если говорить про сервер, то различают внутреннее и внешнее кэширование:

Внутреннее (in memory) кэширование происходит внутри сервиса (внутри его оперативной памяти, хеш-таблице). ➕ Высокая скорость обращения за счет того, что не нужно выполнять запросы к чему-то извне, но ⚠ при горизонтальном масштабировании (создании копий сервиса) требуется синхронизация

Внешнее кэширование происходит на стороне (например, в Redis).⚠Работает медленнее внутреннего, зато можно хранить большие объемы данных, легче масштабировать➕

Чаще всего используют внешнее кэширование, если нет требования к скорости работы

Что это за буквы?

– TTL (Time To Live) – время жизни кэша в секундах
– Cache miss – промах кэша, запрошенный ключ не был найден
– Cache hit – попадание в кэш, запрошенный ключ найден
– Hit ratio – процент попаданий запросов в кэш, характеризует эффективность кэширования
– Горячий ключ🔥 – ключ, на который приходится большая часть запросов
– Прогрев кэша – процесс наполнения кэша данными
– Инвалидация🗑 – удаление кэшированных данных

➡️ Как работает?

Смотрите картинки к посту

– Cache Aside (кэширование на стороне) – сервис координирует запросы в кэш и БД и сам решает, куда и в какой момент обращаться. Достоинство➕: простота, минимум рисков
– Cache Through (сквозное кэширование) – все запросы от приложения проходят через кэш. По сути сервис не знает о БД, вместо этого он обращается только в кэш. Достоинство➕: консистентность данных
– Cache Ahead (опережающее кэширование) – кэш сам периодически подгружает данные из БД через воркер. Если сервис не обнаруживает данные в кэше, он говорит, что их нет. Достоинство➕: нет Cache Miss

➡️ Вывод
Кэширование – мощный инструмент для ускорения работы сервера, но его реализация зависит от требований. Большинство систем обходятся внешним кэшированием с использованием Cache Aside, а кэшируются только редко изменяемые данные.

——————

⬇А у вас на проекте используется кэширование? Если да, то как реализовано? Делитесь своим опытом в комментариях

#полезное_системный_анализ
  • 🔥 13
  • ❤ 4
  • 💯 1
More from @system_analysis_max
  1. Mar 27, 2026Прошел испытательный срок в Альфе 🅰️ Правда, это было 2 месяца назад, но время порефлекси…
  2. Mar 16, 2026Продолжая предыдущий пост Как вы помните, на прошлой неделе объявили о закрытии школы Syst…
  3. Mar 11, 2026Про опыт преподавания Давненько не писал в блог, пора исправляться Последние два месяца вы…
  4. Feb 10, 2026WebSocket на практике 📌 А вы знали, что в Postman можно протестировать не только REST API…
  5. Jan 21, 2026RabbitMQ на практике 📌 Часто ко мне на консультации приходят с запросом отточить какие-ни…
  6. Jan 15, 2026Первый пост в 2026 году Будет очень простым, потому что после выходных я еще не до конца в…
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 →