Сессии на Memcached в Django - нет записей в Memcached - PullRequest
0 голосов
/ 24 мая 2011

Я настраиваю сеансы в Django с использованием memcached, и после входа в кэш элементы не отображаются.

Я могу подключиться к своему экземпляру memcached с помощью telnet localhost 11211, а stats говорит, что процессбежит.Мои настройки кэша следующие:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211' # can also be a list of locations
    }
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'

, и я настроил базу данных для кэширования.Сессии отображаются в базе данных.(при использовании только backends.cache ничего не отображается в базе данных или в кэше.)

Так это ожидаемое поведение?Нужно ли хранить что-то особенное в ключе сеанса, чтобы оно могло зарегистрироваться?

Ответы [ 3 ]

0 голосов
/ 08 июня 2011

Вам также необходимо добавить два класса промежуточного программного обеспечения в настройку MIDDLEWARE_CLASSES, как описано здесь: https://docs.djangoproject.com/en/dev/topics/cache/?from=olddocs#the-per-site-cache

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

0 голосов
/ 08 февраля 2014

Используйте django.core.cache.backends.locmem.LocMemCache как показано ниже

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

        }
0 голосов
/ 27 мая 2011

Я использую 1.2 и читал документы для 1.3.

В 1.2 кеш выглядит так: CACHE_BACKEND = "memcached://127.0.0.1:11211/" вместо словаря кешей.

...