3000 keyhash的Redis值获取大约需要10秒(python 3.5)

时间:2017-09-06 02:29:08

标签: python performance redis

我是REDIS世界的新手。我正在尝试从REDIS获取3000个键的值。每个哈希都有6个我想要获取的值。我使用Python 3.5来连接REDIS一次,然后遍历我的密钥哈希来从REDIS获取它们各自的值。但是,目前大约需要10秒才能获得这3000行的值。我使用以下代码从REDIS获取数据。你能不能请我加快抓取速度。有没有办法一次发送所有密钥并获取与它们相关的值?我正在使用python 3.5。

redis_pool = redis.ConnectionPool(host='XYZ',
                                  port='XY',
                                  db='X')
r = redis.Redis(connection_pool=red_pool)

field1 = r.hmget(primary_key, "Field1")

1 个答案:

答案 0 :(得分:3)

您可以尝试pipeline来加快查询速度。

r = redis.Redis(connection_pool=red_pool)
pipe = r.pipeline()
for key in keys_list: 
    pipe.hget(key, "field1")
results = pipe.execute()

results将是每个hget回复的列表。您可以参考redis-py的自述文件的管道部分,以了解有关如何在python redis客户端中使用管道的更多信息。