为什么python使用redis这么慢?

 杨浩 发布于 2022-12-20 13:25

我在我的云服务器上安装了redis,并运行redis-benchmark,结果是:

SET:每秒90909.09个请求GET:每秒91743.12个请求

但是当我使用python做set/get in循环时:

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个请求.我怎样才能改善它?

1 个回答
  • 首先阅读http://redis.io/topics/benchmarks

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

    使用流水线 - 这里的 Python示例

    使用mget在一个命令中检索多个键

    进行超过8000次迭代,这太低而无法评估性能

    请注意,您将无法在Python中达到redis-benchmark的性能,但您应该能够通过管道传输或mget实现每秒50,000次以上的获取操作.

    2022-12-20 13:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有