python-如何在redis中存储复杂的对象(使用redis-py)
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对象,除了手动解析每个字段外,还有什么方法可以解决此问题?
yuan asked 2020-01-11T20:20:13Z
7个解决方案
81 votes
实际上,您可以使用内置模块pickle将python对象存储在redis中。
这是例子。
import pickle
import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)
obj = ExampleObject()