【问题标题】:Most efficient way to get several hashes in Redis?在 Redis 中获取多个哈希的最有效方法是什么?
【发布时间】:2011-06-23 04:28:58
【问题描述】:
所以我已经阅读了 this post 关于 Redis 哈希没有 MGET 模拟。不幸的是,其中一个答案是使用MULTI/EXEC 批量执行操作,这确实适用于列表和常规键,但不适用于哈希。然而,现在,我正在为我想要检索的每个散列进行电话呼叫,这对我来说似乎是个坏消息。
所以我的问题是:最从 Redis 取回多个哈希的最有效方法是什么,效率标准是最少的网络调用次数?我正在使用 Redis 2.0.4,使用 Python 客户端进行编程。谢谢!
【问题讨论】:
标签:
python
database-design
optimization
redis
【解决方案1】:
最有效的方法是使用管道。
假设您想要给定密钥的所有内容并且已经知道所有密钥:
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