我已经阅读了关于 Redis hashes 没有 MGET
类似功能的此帖子。其中一个答案建议使用MULTI/EXEC
批量操作,这对于列表和常规键是可行的,但不幸的是无法用于哈希。然而,当前我正在为每个要检索的哈希表单独执行调用,这在我的看来很糟糕。
因此,我的问题是:从 Redis 中获取多个哈希的最有效方法是什么? 在效率标准方面,如何使网络调用最少? 我正在使用Redis 2.0.4,并使用Python客户端编程。谢谢!
我已经阅读了关于 Redis hashes 没有 MGET
类似功能的此帖子。其中一个答案建议使用MULTI/EXEC
批量操作,这对于列表和常规键是可行的,但不幸的是无法用于哈希。然而,当前我正在为每个要检索的哈希表单独执行调用,这在我的看来很糟糕。
因此,我的问题是:从 Redis 中获取多个哈希的最有效方法是什么? 在效率标准方面,如何使网络调用最少? 我正在使用Redis 2.0.4,并使用Python客户端编程。谢谢!
最高效的方法是使用管道。
假设您想要获取给定键的所有内容并已经知道所有键:
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