0

我正在编写一个基于 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

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

4

1 回答 1

2

我不确定该self对象是否指的是 的实例RequestHandler,或者可能是Session您拥有的某种类型的实例。无论是哪种情况,您可能都希望在酸洗和保存到 redis 之前将您的对象转换为字典。至少,这就是我对 MongoDB 所做的。我的龙卷风会议:

  • 是否dict包含我想在整个用户会话中保留的任何数据
  • 分配了一个 ID,即:
    • 与我的数据存储(redis 或 MongoDB)中的字典一起保存
    • 存储在用户的 cookie 中
于 2010-10-27T15:23:53.740 回答