只需要用咸菜
# store_objects_in_redis.py
'''
Pickle (dumps) & set to store
Get & and unpickle (loads) to retrieve
#
Courtesy: Armin Ronacher, http://flask.pocoo.org/snippets/73/
'''
import redis
from pickle import loads, dumps
# Create client with default connection
client = redis.client.StrictRedis()
# An example complex object
stored_object = [{1,2,3}, {'a':1,'b':2,'c':3}, ['foo', 'bar']]
# store
client.set('obj', dumps(stored_object))
# retrieve
retrieved_object = loads(client.get('obj'))
# compare
print(stored_object==retrieved_object, '\n', stored_object, '\n', retrieved_object)
'''
Prints (Running in windows7)
== RESTART: K:/.../REDIS/store_objects_in_redis.py ==
True
[{1, 2, 3}, {'c': 3, 'b': 2, 'a': 1}, ['foo', 'bar']]
[{1, 2, 3}, {'c': 3, 'b': 2, 'a': 1}, ['foo', 'bar']]
'''
听起来像是你应该存储每个内部列表('[1,...]'等)的值(可能是编码为JSON或类似)。这些键应该是外部列表中的位置,也许前缀的是整个事物的名称。这种访问子列表很容易。 – Alfe
@Alfe,所以我应该使用(zadd)[http://redis-py.readthedocs.io/en/latest/#redis.Redis.zadd]?因为我不认为使用redis列表是可能的 – 91DarioDev
Redis也支持列表,但我仅将它用于字符串。对我的锤子,JSON解决方案看起来像一个钉子。但请随时在本地存储列表。你为什么认为这是不可能的? – Alfe