четверг, 7 марта 2013 г.

Django Работа с Memcached

Добавление настроек в Django для Memcached в файл settings.py

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


Кэширование в Memcached отдельных данных.

>>> from django.core.cache import cache

>>> cache.set('my_var', 'hello world', 30)
>>> cache.get('my_var', 'or return My_var has expired')

'hello world'

>>> cache.set('a', 1, 60)
>>> cache.set('b', 2, 60)
>>> cache.set('c', 3, 60)
>>> cache.get_many(['a', 'b', 'c'])

{'a': 1, 'b': 2, 'c': 3}

>>> cache.delete('a')

>>> cache.get_many(['a', 'b', 'c'])

{'b': 2, 'c': 3}



Кэширование в Memcached целых страниц Django.

from django.conf.urls.defaults import patterns, include, url


from django.views.decorators.cache import cache_page

from mysite.myapp.views import my_view

urlpatterns = ('',
    (r'^foo/(\d{1,2})/$', cache_page(my_view, 60 * 15)),
)



Кэширование внутри файла views.py

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request, param):
    ...
    ...
    ...



Кэширование в Memcached всех страниц.

Для этого просто добавьте в файл settings.py строку 'django.middleware.cache.CacheMiddleware' вот так:

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.CacheMiddleware',
    'django.middleware.common.CommonMiddleware',
)

Комментариев нет:

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