序中使用Session,需要在settings.py中的MIDDLEWARE_CLASSES变量中加入
'django.contrib.sessions.middleware.SessionMiddleware'
。Django的Session引擎可以将Session存放在三个地方,分别是:数据库、缓存、文件。
---------------------------------------------------------------
如果你想使用数据库支持的会话,你需要添加’django.contrib.sessions’到你的INSTALLED_APPS设置中。在配置完成之后,请运行manage.py migrate
来安装保存会话数据的一张数据库表。
---------------------------------------------------------------
使用缓存保持Session
对于简单的缓存会话:
可以设置SESSION_ENGINE 为”django.contrib.sessions.backends.cache”。此时会话数据将直接存储在你的缓存中。然而,缓存数据将可能不会持久:
如果缓存填满或者缓存服务器重启,缓存数据可能会被清理掉。
若要持久的缓存数据:
可以设置SESSION_ENGINE为”django.contrib.sessions.backends.cached_db”。它的写操作使用缓存,对缓存的每次写入都将再写入到数据库。对于
读取的会话,如果数据不在缓存中,则从数据库读取。两种会话的存储都非常快,但是简单的缓存更快,因为它放弃了持久性。大部分情况下,cached_db后端已经足够快,但是如果你需要榨干最后一点的性能,并且接受会话数据丢失的风险,那么你可使用cache而不是cached_db
使用文件保存Session
使用文件保存Session不再我们的讨论之类,因为很难进行共享,PHP默认也是将Session存放在
/tmp
目录下。
|
简单总结:
- 会话保持的缺点:负载不均衡;没有彻底解决问题.
- 会话复制的缺点:集群超过6个节点就会出现一系列的问题.
- 会话共享:会话数据共享在Nosql(Redis)数据库中分享。
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/8144539.html,如需转载请自行联系原作者