关于Django中Memcached的会话 - Memcached中没有项目

时间:2011-05-24 15:59:48

标签: django memcached django-sessions

我正在使用memcached在Django中设置会话,登录后,缓存中没有任何项目。

我可以使用telnet localhost 11211连接到我的memcached实例,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 :(得分:0)

我正在使用1.2并正在阅读1.3的文档。

在1.2中,缓存看起来像这样:CACHE_BACKEND = "memcached://127.0.0.1:11211/"而不是缓存字典。

答案 1 :(得分:0)

您还需要在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', )

答案 2 :(得分:0)

使用django.core.cache.backends.locmem.LocMemCache,如下所示

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

        }