为什么python使用redis如此缓慢



我在云服务器上设置了redis,并运行redis基准测试,结果是:

SET:90909.09请求/秒获取:每秒91743.12个请求

但当我使用python进行设置/进入循环时:

import datetime
import redis 
r = redis.Redis(host='127.0.0.1', port=6379, db=1)
mapData = {}
begin = datetime.datetime.now()
for i in range(8000):
        mapData[i] = r.get([str(i)])
end = datetime.datetime.now()
print end-begin

结果是每秒只有8000个请求。我该如何改进?

从阅读开始http://redis.io/topics/benchmarks

简而言之,您的python程序在单个连接上生成了太多到Redis的往返,因此您需要为每次迭代的网络延迟付费。我的建议:

  • 使用流水线-这里是Python中的示例
  • 使用mget在一个命令中检索多个密钥
  • 进行8000多次迭代,这太低了,无法评估性能

请注意,在Python中您将无法达到redis基准测试的性能,但您应该能够通过流水线或mget实现每秒超过50K的get操作。

相关内容

  • 没有找到相关文章

最新更新