TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #534 15.4K
🔵 Уровни кэширования

Кэширование — временное сохранение данных, чтобы ускорить их повторное использование и уменьшить нагрузку на системы.
Подробнее читать тут

Уровни кэширования
— места в цепочке передачи данных, где может происходить кэширование


Клиентский кэш

Хранение данных на устройстве пользователя (например, в браузере) для ускорения доступа к часто запрашиваемым ресурсам
 
Тип данных: статические (изображения, CSS, JavaScript)

💙хранит статические данные (изображения, CSS, скрипты)
💙работает с заголовками HTTP (Cache-Control, ETag, Last-Modified)
💙срок жизни данных ограничен временем в заголовках или ручной очисткой

Проблемы и решения

💙 устаревшие данные: использовать версии URL или кэш-бастинг (например, если файл style.css обновился, к URL добавить параметр style.css?v=2.0)
💙 избыточное кэширование: уменьшить объем кэшируемых данных с помощью заголовков (например, Cache-Control: no-cache для динамических данных, ETag, Last-Modified)


Сетевой кэш

Кэш на промежуточных узлах сети (например, CDN)
Используется для уменьшения задержек и нагрузки на сервер

Тип данных: статические (медиафайлы, страницы) и динамические (обработанные данные с учетом TTL)

⏩хранит данные близко к пользователю (PoP-узлы, точки присутствия) 
⏩уменьшает трафик за счет ускорения доставки статических ресурсов
⏩обновление данных через TTL или инвалидацию

Проблемы и решения

➡несинхронизированные данные: регулярная инвалидация и настройка TTL
Стратегия «push» обновлений помогает предотвратить "протухания"
➡высокая нагрузка на основной сервер при обновлении: расширение сети PoP или  многоуровневый кэш (узлы обновляют данные между собой)


Серверный кэш 

Кэширование данных на сервере (например, в памяти или на диске) для ускорения обработки запросов

Тип данных: динамические (результаты запросов, промежуточные вычисления)

💙применяется для часто запрашиваемых данных (например, результаты сложных вычислений)
💙примеры: Redis, Memcached
💙кэширование как статических, так и динамических данных

Проблемы и решения

💙 перезапись кэша и потеря данных: использовать алгоритмы управления кэшем, например, LRU (Least Recently Used). Или механизм TTL для периодической очистки.
💙 конкуренция за память: настроить лимиты на использование памяти и использовать высокоэффективные структур данных (например, Bloom filter) для снижения нагрузки на память


Уровень приложения (кэш приложения) 

Кэширование на уровне бизнес-логики приложения, где данные обрабатываются и сохраняются в памяти / специализированных хранилищах

Тип данных: динамические (сессии, промежуточные результаты)

⏩сохраняет промежуточные данные, которые генерируются во время работы приложения
⏩позволяет минимизировать повторные вычисления или запросы к БД
⏩пример: кэширование запросов в БД с помощью ORM

Проблемы и примеры решения

➡избыточное кэширование: кэшировать только те данные, которые повышают производительность
➡неактуальные данные: введение стратегий инвалидации данных с учетом бизнес-логики (например, обновление данных после определенных изменений или событий)


📎 Материалы
1. Что такое кэширование сайта и почему это важно
2. Кэш
3. Чем полезно кэширование сайта и как его настроить
4. Браузерное и серверное кэширование
5. Проектирование эффективной системы кэширования
6. Обзор использования клиентского кэша с распределенным кэшированием
7. Основы клиентского кэширования понятными словами и на примерах. Last-modified, Etag, Expires, Cache-control: max-age и другие заголовки
8. Кеширование. Настроить и проверить параметры кеширования на CDN-серверах
9. Клиентский кэш данных

#архитектура

➿➿➿➿➿➿➿➿➿➿

🧑‍🎓 Больше полезного в базе знаний по системному анализу
  • 👍 13
  • 🔥 9
  • ❤ 7
More from @sys_sa
  1. Sep 28, 2026🔼AMQP, MQTT и STOMP: протоколы обмена сообщениями AMQP, MQTT и STOMP — независимые проток…
  2. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 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 →