在Redis中获取多个哈希值的最有效方法是什么?

23

我已经阅读了关于 Redis hashes 没有 MGET 类似功能的此帖子。其中一个答案建议使用MULTI/EXEC批量操作,这对于列表和常规键是可行的,但不幸的是无法用于哈希。然而,当前我正在为每个要检索的哈希表单独执行调用,这在我的看来很糟糕。

因此,我的问题是:从 Redis 中获取多个哈希的最有效方法是什么? 在效率标准方面,如何使网络调用最少? 我正在使用Redis 2.0.4,并使用Python客户端编程。谢谢!

1个回答

46

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接