在Redis中获得多个哈希的最有效方法?

时间:2011-02-08 03:09:13

标签: python database-design optimization redis

所以我已经阅读了this post关于没有MGET模拟Redis哈希值的文章。其中一个答案是使用MULTI/EXEC批量执行操作,但这对列表和常规键有效,但不适用于哈希。但是,现在,我正在通过电话拨打我想要检索的每个哈希,这对我来说似乎是个坏消息。

所以我的问题是:从Redis获得多个哈希的有效方法是什么?效率标准是最少的网络呼叫数量?我正在使用Redis 2.0.4,使用Python客户端进行编程。谢谢!

1 个答案:

答案 0 :(得分:37)

最有效的方法是使用管道。

假设您想要一个给定密钥的所有内容并且已经知道所有密钥:

import redis

r = redis.Redis(host='localhost', port=6379, db=0)
p = r.pipeline()
for key in keys:
    p.hgetall(key)

for h in p.execute():
    print h

有关管道的更多信息,请访问:http://redis.io/topics/pipelining