Кэширование в Django ( Johnny Cache )

Тема очень разнообразна и широка, но постепенно я попробую рассказать о тех, которые пробовал.

Сегодня случилось чудо и я попробовал Johnny Cache

Суть его такова, что берём тупо все SELECT и складываем их в memcached. Кэш автоматически обнуляется при UPDATE или INSERT

Устанавливаем

pip install johnny-cache

или

easy_install johnny-cache

Кому как удобнее.

Дальше всё предельно просто, просто невероятно :))

На сайте в документации приведён вот такой вариант настройки
1 Добавим две строки в MIDDLEWARE_CLASSES

# add johnny's middleware
MIDDLEWARE_CLASSES = (
    'johnny.middleware.LocalStoreClearMiddleware',
    'johnny.middleware.QueryCacheMiddleware',
    # ...
)

Также опишем бэкЭнд

# some johnny settings
CACHES = {
    'default' : dict(
        BACKEND = 'johnny.backends.memcached.MemcachedCache',
        LOCATION = ['127.0.0.1:11211'],
        JOHNNY_CACHE = True,
    )
}
JOHNNY_MIDDLEWARE_KEY_PREFIX='jc_myproj'

JOHNNY_MIDDLEWARE_KEY_PREFIX – надеюсь и так понятно для чего, если вдруг у нас несколько проектов используют mamcached и чтоб объекты не путались, используем префикс для текущего проекта.

Вот собственно и всё, на типовых сайтах с 7-10 запросов на страницу остался одни.
На нагруженных проектах, где на страницу было 20-30 запросов стало также 1-2.

Общее снижение числа запросов в рамках одного сервера тоже значительное в среднем раньше было 100 запросов в секунду, сейчас стало 30-40

  1. Согласно статье на хабре http://habrahabr.ru/post/143789/ использование Johnny Cache для сайтом с большим количеством объектов в таблице – не лучшее решение.

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">