登录django缓存会话的问题

时间:2015-04-16 13:33:28

标签: python django session caching

我在使用django

的缓存后端时遇到问题
SESSION_ENGINE = "django.contrib.sessions.backends.cache"

当我将会话引擎设置为使用缓存而不是数据库时。我无法登录。从应用程序日志中我可以看到auth成功,响应还包含session_id的set-cookie标头。所以一切似乎都在起作用。除了登录后我刚刚返回登录页面。我猜这个会话

如果我注释掉会话引擎,它会恢复使用数据库会话引擎并按预期工作。

这是在我的python 2.7机器本地工作,在服务器上这不起作用有python 2.6运行(我不确定这是否相关,但它是关于我能找到的唯一真正的区别)。 pip包大多是相同的,我认为这都来自django内部。 我在两个地方都使用django 1.6.7。

1 个答案:

答案 0 :(得分:3)

LocMemCache不适合制作。

  

如果您正在使用Memcached缓存后端,则应该只使用基于缓存的会话。本地内存缓存后端不会保留足够长的数据以作为一个好的选择,并且直接使用文件或数据库会话而不是通过文件或数据库缓存后端发送所有内容会更快。此外,本地内存缓存后端不是多进程安全的,因此可能不适合生产环境。

https://docs.djangoproject.com/en/1.6/topics/http/sessions/#using-cached-sessions

通常,当我第一次部署时,我将从配置的DB Cache开始,以证明配置。然后将其切换到Memcache或Redis。