tornado每个控制器相关的class ~
import tornado.web import sys import session class BaseHandler(tornado.web.RequestHandler): def __init__(self, *argc, **argkw): super(BaseHandler, self).__init__(*argc, **argkw) self.session = session.Session(self.application.session_manager, self) def get_current_user(self): return self.session.get("user_name")
对于登录注册session:
self.session["user_name"] = self.get_argument("name") self.session["nima"] = 'xiaorui.cc' self.session.save()
对于退出登录:
self.session["nima"] =None self.session.save()
其实就改成None就行了,匹配都在装饰器那边搞好了。
偶了,这就可以了。用之前要配置下相关的组件!
pip install ujson redis
pip install tornado
session.py 代码来自:
git clone https://github.com/zs1621/tornado-redis-session
这老外写的有点简陋,说明几乎没有,还好tornado redis session本身就是不难的东西,看看就能搞定。
单个tornado我现在已经可以顶到1500个长连接不崩溃了,如果加上ngixn做tornado的分发负载,估计连接在6k问题不大。
本文出自:http://blog.xiaorui.cc, 原文地址:http://blog.xiaorui.cc/2014/11/02/%e4%bd%bf%e7%94%a8redis%e6%9d%a5%e5%ae%9e%e7%8e%b0tornado-session%e7%9a%84%e5%88%86%e5%b8%83%e5%bc%8f%e5%ad%98%e5%82%a8/, 感谢原作者分享。