Продвинутый Django 5 для продолжающих

Прогресс по курсу:  0/193

10.2 Виды кэша в Django
4 из 4 шагов пройдено

Установка привязки Python к Memcached

После установки Memcached необходимо установить привязку Python к Memcached.

Мы установим быстрый клиент Memcached - pymemcache. Выполните следующую ниже команду в оболочке:

pip install pymemcache==3.5.2

Подробнее о библиотеке pymemcache можно почитать на странице https://github.com/pinterest/pymemcache.

 

Настроечные параметры кэша

Django предоставляет следующие настроечные параметры кэша:

  • CACHES: словарь, содержащий все доступные проекту кэши;
  • CACHE_MIDDLEWARE_ALIAS: используемый для хранения псевдоним кэша;
  • CACHE_MIDDLEWARE_KEY_PREFIX: префикс ключей кэша. Префикс устанавливается во избежание конфликтов ключей, если один и тот же кеш используется на нескольких сайтах;
  • CACHE_MIDDLEWARE_SECONDS: принятое по умолчанию число секунд кэширования страниц.


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

  • BACKEND: подлежащий использованию кэш-бэкенд;
  • KEY_FUNCTION: строковый литерал, содержащий точечный путь к вызываемому объекту, который принимает префикс, версию и ключ в качестве аргументов и возвращает окончательный ключ кэша;
  • KEY_PREFIX: строковый префикс для всех ключей кэша во избежание конфликтов;
  • LOCATION: местоположение кэша. В зависимости от кэша-бэкенда это может быть каталог, хост и порт или имя резидентного бэкенда;
  • OPTIONS: любые дополнительные параметры, которые должны передаваться в кэш-бэкенд;
  • TIMEOUT: принятый по умолчанию тайм-аут в секундах для хранения ключей кэша. По умолчанию равен 300 секундам, то есть 5 минутам. Если установлено значение None, то срок действия ключей кэша не истекает;
  • VERSION: принятый по умолчанию номер версии ключей кэша. Удобен для управления версиями кэша.

 

Добавление кеш-сервера Memcached в проект

Давайте сконфигурируем кеш под ваш проект. Отредактируйте файл settings.py проекта django_htmx, добавив в него следующий ниже исходный код:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
        'LOCATION': '127.0.0.1:11211',
    }
}


Здесь используется бэкенд PyMemcacheCache. При этом его местоположение задается посредством нотации адрес:порт.

Если есть несколько экземпляров кеш-сервера Memcached, то в LOCATION можно использовать список.


Вы настроили резидентный кеш-сервер Memcached под проект django_htmx. Начнём кешировать данные!


  • Комментария
Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

Если что, продолжаем уже проект 'django_htmx'

не сразу увидел, пришлось поискать :D

получается, если проект на уже на сервере или собирается оказаться там, то в LOCATION нужно добавить: host_name:11211 ? вопрос относительно порта

@Ilia_Boiarintsev, нет, зачем? Мы же используем локально установленный кэш-сервер, то есть он находится на том-же сервере что и Django.

@Дмитрий_Селезнев, Да, все верно. А при деплое проекта. просто сервер поменять на хост нейм и порт этот же оставить?

@Ilia_Boiarintsev, это для любой ситуации подходит, кроме той когда кэш-сервер находится на другом сервере, тогда необходимо указать его адрес и порт.