Использование кэш-фреймворка Django
Обработка HTTP-запросов к веб-приложению обычно влечет за собой доступ к базе данных, манипулирование данными и прорисовку шаблона. Это намного дороже с точки зрения обработки, чем просто раздача статического веб-сайта.
Накладные расходы в некоторых запросах бывают значительными в ситуациях, когда сайт начинает получать все больше и больше трафика. Именно здесь ценность кэширования проявляет себя ярче всего.
Кэширование запросов, результатов вычислений или прорисованного содержимого в HTTP-запросе позволяет избегать дорогостоящих операций в последующих запросах, которые должны возвращать те же данные. Это приводит к сокращению времени отклика и уменьшению объема обработки на стороне сервера.
Django содержит устойчивую систему кэширования, которая позволяет кэшировать данные с разными уровнями гранулярности. Можно кэшировать один запрос, результат конкретного представления, части содержимого прорисованного шаблона либо весь сайт.
Элементы хранятся в системе кэширования в течение предустановленного времени, при этом при кэшировании данных можно указывать тайм-аут.
Ниже приведено типовое применение кэш-фреймворка, когда приложение обрабатывает HTTP-запрос:
- Попытаться найти запрошенные данные в кэше.
- Если они найдены, то вернуть кэшированные данные.
- Если они не найдены, то выполнить следующие действия:
- выполнить запрос к базе данных либо обработку, необходимые для генерирования данных;
- сохранить сгенерированные данные в кэше;
- вернуть данные.
Подробную информацию о встроенной в Django системе кэширования можно найти на странице https://docs.djangoproject.com/en/4.2/topics/cache/.