我正在使用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
时,数据库或缓存中不会显示任何内容。)
这是预期的行为吗?我是否必须在会话密钥中存储特殊内容才能注册?
答案 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"
},
}