如何使用redis缓存HTTP响应对象

时间:2014-10-21 05:37:44

标签: python redis

我正在尝试使用redis作为HTTP响应的缓存后端。 我的问题是将响应对象建模为redis。 在文档存储中,数据看起来像这样:

def set_data(response):

  data= {

   '_id': key,

   'time': time(),

   'status': response.status,

   'url': response.url,

   'headers': dict(response.headers),

   'body': headers.body

   }

我的问题在于字段'标题'因为它是一个字典。 在redis中,我可以为我的用例嵌套Hash数据结构吗? 在redis中对复杂字段进行建模有哪些好的设计实践? 我应该用不同的密钥存储标头吗?类似的东西:

 headers_key= some_prefix+key

然后使用redis哈希数据结构存储头文件dict? 或者我应该只是序列化我的标题?

我该怎么办?我已经研究过各种各样的方法,但是我无法弄清楚哪种方式最合适。所以我需要一些启发可以用于redis中的用例的最佳实践。请帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用json序列化和反序列化dict。 String对象适合redis存储。 像:

import json
headers = json.dumps(dict(response.headers))
# then store it to redis
headers_dict = json.loads(headers)
# then it's a dict again