小编典典

如何在Redis中存储复杂的对象(使用redis-py)

redis

hmset函数可以设置每个字段的值,但是我发现,如果值本身是一个复杂的结构化对象,则从hget返回的值是一个序列化的字符串,而不是原始对象

例如

images= [{'type':'big', 'url':'....'},
     {'type':'big', 'url':'....'},
     {'type':'big', 'url':'....'}]

redis = Redis()
redis.hset('photo:1', 'images', images)

i = redis.hget('photo:1', 'images')
print type(i)

i的类型是字符串,而不是python对象,除了手动解析每个字段外,还有什么方法可以解决此问题?


阅读 889

收藏
2020-06-20

共1个答案

小编典典

您无法在Redis中创建嵌套结构,这意味着您无法(例如)在本地Redis哈希图中存储本地Redis列表。

如果确实需要嵌套结构,则可能只想存储JSON-blob(或类似的东西)。另一种选择是将“ id”
/密钥存储到另一个redis对象作为映射密钥的值,但这需要多次调用服务器才能获取完整的对象。

2020-06-20