所以我已经阅读了this post关于没有MGET
模拟Redis哈希值的文章。其中一个答案是使用MULTI/EXEC
批量执行操作,但这对列表和常规键有效,但不适用于哈希。但是,现在,我正在通过电话拨打我想要检索的每个哈希,这对我来说似乎是个坏消息。
所以我的问题是:从Redis获得多个哈希的最有效方法是什么?效率标准是最少的网络呼叫数量?我正在使用Redis 2.0.4,使用Python客户端进行编程。谢谢!
答案 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