【Redis】----如何测试redis单机的最大并发
文章目录一、Python 压测脚本1.1、redis_concurrent_test.py1.2、关键说明1.3、进阶优化建议可选1.4、协程版本补充高并发推荐二、redis内部提供的命令2.1、命令 redis-benchmark2.2、参数解释2.3、压测结果解读GET 纯读100 并发10 万请求核心指标2.4、简单分析2.5、建议继续测试复制直接运行1纯 SET 写压测最有参考价值2读写混合默认场景 SET/GET 等多条命令3调高并发到 200观察延迟是否明显上涨2.6、补充对比提醒一、Python 压测脚本使用threading多线程模拟并发读写打印详细耗时、成功率、QPS日志支持自定义并发数、请求总量、读写比例。依赖redis-pypipinstallredis1.1、redis_concurrent_test.pyimportthreadingimporttimeimportredisfromtypingimportDict# 配置区 REDIS_HOST127.0.0.1REDIS_PORT6379REDIS_PASSWORDNoneREDIS_DB0CONCURRENT_THREADS20# 并发线程数TOTAL_REQUESTS10000# 总请求次数TEST_KEY_PREFIXtest_concurrent:# 读写比例 True写, False读调整读写混合场景WRITE_RATIO0.3# # 全局统计stat:Dict{success:0,fail:0,total_cost:0.0,lock:threading.Lock()}defcreate_redis_client()-redis.Redis:创建redis连接每个线程独立client避免线程安全问题returnredis.Redis(hostREDIS_HOST,portREDIS_PORT,passwordREDIS_PASSWORD,dbREDIS_DB,decode_responsesTrue,socket_timeout5)defworker(thread_id:int,req_per_thread:int):单个线程工作函数rcreate_redis_client()thread_starttime.perf_counter()print(f[线程{thread_id:02d}] 启动计划执行{req_per_thread}次请求)foriinrange(req_per_thread):keyf{TEST_KEY_PREFIX}{thread_id}_{i}starttime.perf_counter()try:ifi/req_per_threadWRITE_RATIO:# 写操作 setr.setex(key,300,fvalue_{thread_id}_{i}_{time.time()})else:# 读操作 getr.get(key)costtime.perf_counter()-startwithstat[lock]:stat[success]1stat[total_cost]costexceptExceptionase:withstat[lock]:stat[fail]1print(f[线程{thread_id:02d}] 请求异常 key{key}err{str(e)})thread_costtime.perf_counter()-thread_startprint(f[线程{thread_id:02d}] 执行完成耗时{thread_cost:.3f}s)defmain():print(*60)print(fRedis单机并发压测启动)print(f地址:{REDIS_HOST}:{REDIS_PORT}| 并发线程:{CONCURRENT_THREADS})print(f总请求量:{TOTAL_REQUESTS}| 写比例:{WRITE_RATIO:.1%})print(*60)# 均分请求到各个线程base_reqTOTAL_REQUESTS//CONCURRENT_THREADS threads[]start_timetime.perf_counter()fortidinrange(CONCURRENT_THREADS):tthreading.Thread(targetworker,args(tid,base_req))threads.append(t)t.start()# 等待所有线程结束fortinthreads:t.join()total_timetime.perf_counter()-start_time# 输出汇总统计print(\n*60)print(【压测结果汇总】)print(f总耗时:{total_time:.3f}s)print(f成功请求:{stat[success]})print(f失败请求:{stat[fail]})ifstat[success]0:avg_latency_ms(stat[total_cost]/stat[success])*1000qpsstat[success]/total_timeprint(f平均延迟:{avg_latency_ms:.3f}ms)print(fQPS(成功):{qps:.2f}req/s)print(*60)if__name____main__:main()1.2、关键说明线程安全每个线程新建独立Redis实例禁止多线程共用同一个clientredis-py同步客户端非线程安全支持读写混合压测修改WRITE_RATIO1.0纯写压测0.0纯读压测日志输出每个线程启动/结束日志异常请求打印错误信息最终汇总总耗时、成功失败数、平均延迟、QPS适用于单机Redis如需集群压测只需修改连接初始化1.3、进阶优化建议可选如果想要更高压测性能使用gevent协程版本大量并发场景比thread高效开启redis pipeline批量请求使用hiredis加速解析pip install hiredis客户端自动启用1.4、协程版本补充高并发推荐略过二、redis内部提供的命令2.1、命令 redis-benchmark命令例子进入到redis的安装目录执行 redis-benchmark -a 123456 -c 100 -n 100000 -t get如果是docker方式 docker exec -it redis redis-benchmark -a 123456 -c 100 -n 100000 -t get2.2、参数解释-a 123456Redis 认证密码 -c 100并发连接数 -n 100000总请求次数 -t get只压测 GET 命令2.3、压测结果解读GET 纯读100 并发10 万请求throughput summary:104058.27requests per second latency summary(msec): avg min p50 p95 p99 max0.4960.1760.4390.8151.1914.807核心指标QPS ≈ 10.4 万 /s Docker 内单机 Redis 纯读这个性能属于非常优秀。 延迟分布 平均延迟0.496ms p500.439ms一半请求低于该值 p950.815ms p991.191ms 最大延迟4.807ms少量毛刺2.4、简单分析✅ 绝大部分请求稳定在 1ms 以内✅ 长尾延迟不高没有严重阻塞⚠️ 注意redis-benchmark 测试的是预设 key不存在 key 缺失、大 value、复杂命令真实业务 QPS 会低于该数值。2.5、建议继续测试复制直接运行1纯 SET 写压测最有参考价值docker exec -it redis redis-benchmark -a 123456 -c 100 -n 100000 -t set2读写混合默认场景 SET/GET 等多条命令docker exec -it redis redis-benchmark -a 123456 -c 100 -n 1000003调高并发到 200观察延迟是否明显上涨docker exec -it redis redis-benchmark -a 123456 -c 200 -n 200000 -t get2.6、补充对比提醒之前的 Python 脚本受 GIL、网络开销、python 客户端限制跑不出 10 万 QPS。redis-benchmarkC 原生测 Redis 理论极限 Python 脚本适合模拟真实业务逻辑带复杂 key、序列化、异常重试用来验证业务并发场景。

相关新闻

收藏必备!小白程序员轻松入门大模型RAG技术全流程解析

收藏必备!小白程序员轻松入门大模型RAG技术全流程解析

本文详细解析了RAG技术的全流程,从文档解析、知识库构建分块到索引和知识增强,涵盖了问答对解析、DeepDoc、MinerU等工具的使用,以及多种分块策略如固定大小、滑动窗口、基于句子等。文章还介绍了上下文增强索引、添加上下文块标题和引入问题…

2026/10/1 20:27:26 阅读更多 →
小白程序员必看:速桥云智能体如何让大模型落地制造业务?

小白程序员必看:速桥云智能体如何让大模型落地制造业务?

本文介绍了制造业数字化转型痛点及速桥云智能体平台的解决方案。速桥云通过六层工业AI Agent架构,打通企业数据流、业务流、决策流,实现多智能体协同作业。平台兼容现有MES/ERP系统,无需大规模改造,可沉淀企业经验,提升…

2026/10/1 20:26:48 阅读更多 →
仅限首批200家企业的AI客户生命周期沙盒环境开放申请:含预训练行业知识图谱与合规性审计模板

仅限首批200家企业的AI客户生命周期沙盒环境开放申请:含预训练行业知识图谱与合规性审计模板

更多请点击: https://intelliparadigm.com 第一章:AI 客户生命周期管理 AI 客户生命周期管理(AI-CLM)是指利用机器学习、自然语言处理与预测分析等技术,对客户从获客、激活、留存、增购到流失预警与召回的全周期进行…

2026/9/28 10:50:41 阅读更多 →

最新新闻

ECS与Serverless函数计算全对比:选型、成本、弹性与迁移避坑指南

ECS与Serverless函数计算全对比:选型、成本、弹性与迁移避坑指南

如果你身边有做后端的朋友,这两年聊得最多的词里,“上云”和“降本”一定排得上号。而在所有上云方案里,最先被拿来做选择题的往往是两个东西:ECS云服务器和Serverless函数计算。先说结论,这两个概念虽然都长在云计算这…

2026/10/1 20:26:43 阅读更多 →
ECS云服务器与Serverless函数计算选型指南:计费、冷启动与运维对比

ECS云服务器与Serverless函数计算选型指南:计费、冷启动与运维对比

最近好几个做独立开发的同事在群里问我同一个问题:ECS云服务器和Serverless函数计算到底怎么选。他们看到我一边用着按量付费的云主机跑着常驻服务,一边把一堆小接口丢到函数计算上,觉得有点精神分裂。其实这两个东西不是竞品,更像…

2026/10/1 20:26:43 阅读更多 →
大模型实战:工具框架选型与三条高效学习路线

大模型实战:工具框架选型与三条高效学习路线

2024年我刚踏进大模型这个圈子的时候,最直观的感受就是“乱”:模型今天出一个明天出一个,框架上午还在聊LangChain,下午又冒出来一个Agent框架,网上的AI学习路线图永远在互相打架。到了2026年前后的节点,生…

2026/10/1 20:26:43 阅读更多 →
Unity人物渲染性能优化:从Shader到骨骼动画的系统拆解

Unity人物渲染性能优化:从Shader到骨骼动画的系统拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:26:43 阅读更多 →
长时运行LLM任务的工程陷阱与实战方案

长时运行LLM任务的工程陷阱与实战方案

1. 这不是“跑个模型”那么简单:长时运行LLM任务的真实战场“Notes on long-running LLM tasks”——光看标题,很多人第一反应是“不就是让大模型多跑一会儿?”但我在医疗AI平台、金融风控系统和政务知识中台三个领域实打实落地过7个超8小时连…

2026/10/1 20:26:43 阅读更多 →
Madeira 跨架构运行环境:FEX-Emu + Wine + DXMT 技术栈解析

Madeira 跨架构运行环境:FEX-Emu + Wine + DXMT 技术栈解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 20:25:43 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →