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

dav*_*lab 20 python optimization database-design redis

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

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

sma*_*how 39

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

假设您想要给定键的所有内容并且已经知道所有键:

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
Run Code Online (Sandbox Code Playgroud)

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