Архивы: Johnny-Cache

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

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

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

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

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

[cc lang=”bash”]pip install johnny-cache[/cc]
или
[cc lang=”bash”]easy_install johnny-cache[/cc]

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

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

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

[cc lang=”python”]# add johnny’s middleware
MIDDLEWARE_CLASSES = (
‘johnny.middleware.LocalStoreClearMiddleware’,
‘johnny.middleware.QueryCacheMiddleware’,
# …
)[/cc]

Также опишем бэкЭнд
[cc lang=”python”]
# 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'[/cc]

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

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

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