Топ

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

Кэширование помогает снизить нагрузку на сервер. Достигается такой эффект путем сохранения результатов часто повторяющихся операций и предоставления клиентам уже готовых ответов.

Например, вместо того чтобы каждый раз извлекать редко меняющиеся данные из таблиц базы данных, вы можете извлечь их один раз и сохранить значения в оперативной памяти. В дальнейшем вы сможете обращаться за данными к ОЗУ, откуда можно получить их гораздо быстрее, чем из базы данных на жестком диске. При изменении значений, сохраненных в кэше, система очищает кэш и заново извлекает эти значения из базы данных для будущих запросов.

Кэш может создаваться для разных уровней стека.

Инструменты кэширования

Memcached — распространенная система кэширования в оперативной памяти.

Redis — это хранилище данных в памяти в виде словаря (с парами ключей и их значений). При помощи таких библиотек как django-redis-cache и django-redis легко настраивается для реализации кэширования.

Ресурсы по теме кэширования

  • Caching at Reddit — прекрасный пост, в котором подробно разбирается, как Reddit реализует кэширование своего веб-приложения на Python (а ежемесячное количество просмотров страниц этого приложения исчисляется в миллиардах). В статье поднимаются темы мониторинга, настройки и масштабирования.
  • В статье Caching: Varnish or Nginx? вопрос кэширования рассматривается в разрезе выбора обратного прокси-сервера. Разбираются такие вещи, как поддержка SSL и SPDY.
  • Caching is Hard, Draw me a Picture. В этой статье вы найдете схемы кэширования веб-запросов. Эти иллюстрации помогут вам лучше понять сам принцип работы кэширующих слоев.
  • Хотя кэширование во многих ситуациях бывает очень полезным, не стоит забывать, что у этого приема есть и отрицательные стороны. Многие разработчики их не учитывают, и совершенно напрасно.
  • В статье Mastering HTTP caching вы найдете советы более высокого уровня. Там разбирается кэширование динамического и статического контента при помощи CDN и других конфигураций.

Изучение кэширования на практике

  1. Проанализируйте свое веб-приложение, определите, какие его части работают медленнее всего. Скорее всего, вы обнаружите сложные запросы к базе данных, которые вполне могут быть обработаны и сохранены в памяти для быстрого доступа.
  2. Используйте для кэширования результатов этих сложных запросов уже имеющееся хранилище в оперативной памяти, в котором хранятся данные сессии.
  3. Реализуйте схему проверки и очистки кэша, чтобы результаты, подготовленные для отправки пользователям, были точными.
Марина

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago