【问题标题】:Tornado Session in RedisRedis 中的 Tornado 会话
【发布时间】:2011-04-22 12:14:46
【问题描述】:

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

首先,我什至无法序列化 self 以存储在 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

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

【问题讨论】:

  • “自我”对象来自什么上下文?一个 RequestHandler 实例?

标签: session redis tornado


【解决方案1】:

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

  • dicts 是否包含我希望在用户会话中保留的任何数据
  • 被分配了一个 ID,它是:
    • 与字典一起保存在我的数据存储(redis 或 MongoDB)中
    • 存储在用户的 cookie 中

【讨论】:

  • 是的,它指的是指向特定客户端的 RequestHandler。你如何从 Tornado 做到这一点?
猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 2015-10-12
  • 2014-05-17
  • 2019-01-20
  • 1970-01-01
  • 2013-03-11
相关资源
最近更新 更多