Кэширование

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

получен URL, пытаемся найти такую страницу в кэше если страница есть в кэше: возвращаем закэшированную страницу иначе: создаём страницу сохраняем её в кэше на будущее возвращаем созданную страницу

Django поставляется с надёжной системой кэширования, которая позволяет вам сохранять динамические страницы, что помогает сэкономить ресурсы при повторных запросах. Для удобства Django предоставляет различные уровни детализации кэша. Вы можете кэшировать отклики определённых представлений, либо только трудновоспроизводимые части, или вы можете кэшировать весь сайт.

Настройка кэша

Система кэширования практически не нуждается в настройке. А именно, следует указать где должен располагаться кэш: в базе данных, на файловой системе или прямо в оперативной памяти. Это важное решение, которое повлияет на производительность кэша (да, некоторые типы кэша значительно быстрее работают чем другие). Производительность кэширования в памяти обычно значительно выше, чем в случае базы данных или файловой системы, так как в этом случае исключаются затраты на взаимодействие с базой данных или файловой системой.

Настройка кэша производится через параметр CACHE_BACKENDфайла конфигурации. Если вы используете кэширование и не указали CACHE_BACKEND, Django будет по умолчанию использоватьsimple:///.

Memcached

Безусловно самый быстрый и самый эффективный тип кэша доступный Django — Memcached — является средой кэширования в оперативной памяти, разработанной для управления высокой нагрузкой на сервис.
Memcached доступен бесплатно на http://danga.com/memcached/. Он запускается в виде сервиса и выделяет себе указанный объём оперативной памяти. Его главной особенностью является интерфейс — супер-быстрый-и-лёгкий интерфейс — используемый для добавления, получения и удаления определённых данных из кэша. Все данные хранятся только в оперативной памяти, таким образом нет излишних затрат ресурсов на работу с файловой системой или базой данных.

Для использование Memcached совместно с Django установите для параметраCACHE_BACKENDзначениеmemcached://ip:port/, гдеip — это IP адрес сервера на котором работает сервис Memcached, аport — соответственно, порт.

Кэширование в базу данных

Для использования таблицы базы данных в виде кэша следует создать такую таблицу и указать Django, что надо использовать её для кэширования.

Сначала, создаём таблицу с помощью команды:
python manage.py createcachetable [cache_table_name]

где[cache_table_name] — имя таблицы, которая будет создана. Имя может быть любым, главное, чтобы оно соответствовало требования базы данных и не было уже занято. Эта команда создаёт одну таблицу в базе данных в соответствующем для Django формате.

После создания таблицы необходимо назначить параметру CACHE_BACKEND значение db://tablename, где tablename — имя таблицы, которую вы создали. В данном примере, имя таблицы будетmy_cache_table:
CACHE_BACKEND = 'db://my_cache_table'

Система кэширования в базу данных использует ту же базу данных, которая указана в файле конфигурации. Вы не можете использовать отдельную базу данных для кэша.

results matching ""

    No results matching ""