所以我已经在this post上读到过关于没有Redis哈希表的MGET
类似的东西。其中一个答案是使用MULTI/EXEC
进行批量操作,这确实适用于列表和普通键,但不幸的是,它不适用于散列。然而,现在我正在通过网络为我想要检索的每个散列进行调用,这对我来说似乎是个坏消息。
所以我的问题是:从Redis获取多个哈希的最有效方法是什么,效率的标准是网络调用次数最少?我使用的是Redis 2.0.4,使用Python客户端进行编程。谢谢!
发布于 2011-02-18 00:00:03
最有效的方法是使用管道。
假设您想要给定密钥的所有内容,并且已经知道所有密钥:
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
https://stackoverflow.com/questions/4929202
复制相似问题