Redis中的龙卷风会议

时间:2010-10-07 17:46:18

标签: session redis tornado

我正在编写一个基于Tornado的轻量级彗星服务器。 我想将“self”对象存储在redis中以维持状态。 这有用吗?

首先,我甚至无法将自己序列化以存储在Redis中。

这是错误

File "sessionsupport.py", line 27, in get
    this = cPickle.dumps(self,1)
  File "/home/test/lib/python2.7/copy_reg.py", line 70, in _reduce_ex
    raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instancemethod objects

关于我将如何做到这一点的任何建议?

1 个答案:

答案 0 :(得分:2)

我不确定self对象是否引用了RequestHandler的实例,或者某个类型的Session实例。无论是哪种,你可能都希望在酸洗和保存到redis之前将你的对象转换为dict。至少,这就是我用MongoDB做的事情。我的龙卷风会议:

  • dict是否包含我希望在整个用户会话中保留的任何数据
  • 分配的ID是:
    • 与我的数据存储区中的dict一起保存(redis或MongoDB)
    • 存储在用户的cookie中