redis mysql qps_测算Redis处理实际生产请求的QPS/TPS
测算Redis处理实际生产请求的QPS/TPS
Benchmark工具
redis发布版本中自带了redis-benchmark性能测试工具;
示例:
使用50个并发连接,发出100000个请求,每个请求的数据为2kb,
测试host为127.0.0.1 端口为6379的redis服务器性能:
./redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 100000 -d 2
...
====== SADD ======
100000 requests completed in 2.27 seconds
500 parallel clients
3 bytes payload
keep alive: 1
4.66% <= 1 milliseconds
14.15% <= 2 milliseconds
23.87% <= 3 milliseconds
33.59% <= 4 milliseconds
43.13% <= 5 milliseconds
52.69% <= 6 milliseconds
62.08% <= 7 milliseconds
71.43% <= 8 milliseconds
80.66% <= 9 milliseconds
89.10% <= 10 milliseconds
95.23% <= 11 milliseconds
98.76% <= 12 milliseconds
99.59% <= 13 milliseconds
99.78% <= 14 milliseconds
99.87% <= 15 milliseconds
99.95% <= 16 milliseconds
99.99% <= 17 milliseconds
100.00% <= 17 milliseconds
44150.11 requests per second
我们关注结果最后一行:每秒44150.11个请求,既QPS4.4万;
但这里的数据都只是测试数据,测出来的QPS不能代表实际生产的处理能力;
测算redis处理实际生产请求的QPS/TPS
在实际生产中,我们需要关心这个指标,在我们的应用场景中,
redis能够处理的最大的(QPS/TPS)是多少?
测量redis QPS的方式有两种:
估计生产的报文大小,使用benchmark工具指定-d数据块大小来模拟;
使用redis-cli中info统计信息计算差值;
redis-cli的info命令中有一项total_commands_processed表示:从启动到现在处理的所有命令总数,可以通过统计两次info指令间的差值来计算QPS:
//返回redis-cli info中total_commands_processed的结果
long getCmdProcessNum(redisContext *c)
{
string strVal;
getInfo(c,strVal);
map mpVal;
parserInfo(strVal,mpVal);
map::iterator iter = mpVal.find("total_commands_processed");
if(iter != mpVal.end())
{
return atol(iter->second.c_str());
}
cout << "[err] not found total_commands_processed" << endl;
return 0;
}
在实际生产中,运行这个程序来统计实际的QPS。
运行示例:
/opt/app/redisTPS#./redisTPS
Time: 1 Process:40962 TPS:40839.48
Time: 1 Process:43741 TPS:43610.17
Time: 1 Process:38935 TPS:38779.88
Time: 1 Process:31724 TPS:31597.61
Time: 1 Process:32169 TPS:32008.96
Time: 1 Process:31634 TPS:31476.62
Time: 1 Process:46007 TPS:45823.71
Time: 1 Process:50460 TPS:50258.96
Time: 1 Process:47309 TPS:47167.50
Time: 1 Process:50511 TPS:50359.92
...
Posted by: 大CC | 14MAR,2015
博客:blog.me115.com [订阅]
微博:新浪微博
redis mysql qps_测算Redis处理实际生产请求的QPS/TPS相关推荐
- redis mysql原理_Canal(redis与mysql数据一致性)
canal实现原理 1.canal server端会伪装成mysql从节点,去读取mysql主节点binlog文件,实现增量同步 2.canal server端将数据以json格式同步到客户端,MQ消 ...
- redis mysql 架构_redis+mysql架构搭建
redis+mysql框架搭建 redis是一个key-value存储系统.和memcached类似,不过redis支持的value类型更多,主要有:string(字符串).list(链表).set( ...
- mysql 登录_Spring boot redis +mysql实现登录功能
在前面的文章中呢,我们介绍了spring boot 集成Druid,集成了mysql ,在实际的开发过程中呢,我们还需要利用redis 做一些缓存之类的数据,怎样去链接redis呢,本篇文章给大家讲 ...
- 基于Redis+MySQL+MongoDB存储架构应用
摘 要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...
- Linux企业运维 6.6 -- Redis部署及主从切换、Redis+Mysql读写分离
目录 Redis简介 redis的编译.安装 1.server1的redis配置 2.server2的redis安装 3.server3配置redis 三.redis主从复制 四.Sentine主从自 ...
- MySQL与Redis数据库结合——redis作为mysql的缓存服务器,实现读写分离(nginx+php+redis+mysql)
文章目录 一.读写分离的背景 二.搭建nginx+php+redis+mysql 实验环境 实验 1.在server1上安装nginx+php 建立php和redis,mysql的连接 2.在serv ...
- springboot+jwt+shiro+vue+elementUI+axios+redis+mysql完成一个前后端分离的博客项目(笔记,帮填坑)
根据B站up主MarkerHub视频制作的一个笔记 我的博客 B站博主链接: https://www.bilibili.com/video/BV1PQ4y1P7hZ?p=1 博主的开发文档: http ...
- MyBatis.Redis.+mysql.mycat
MyBatis/Redis/+mysql/mycat 1.Mybatis优缺点 优点: 1.基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在XML 里,解 ...
- ssm radis mysql_从零开始搭建框架SSM+Redis+Mysql(一)之摘要
从零开始搭建框架SSM+Redis+Mysql(一)之摘要 本文章为本人实际的操作后的回忆笔记,如果有步骤错漏,希望来信307793969@qq.com或者评论指出. 本文章只体现过程,仅体现操作流程 ...
最新文章
- 不扶好眼镜,请别打开这本挑战JS语言特性的书
- [9.28模拟] good
- ViSP创建之VS工程详细创建步骤(命令行方式)
- 【数据结构】B-Tree, B+Tree, B*树介绍
- 导出oracle sequences,利用数据泵只导出序列
- linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份
- 前端学习(2021)vue之电商管理系统电商系统之合并goodlist的分支
- Windows Communication Foundation from msdn
- web页面找不到资源文件,报404,但是资源文件存在且路径没错
- android布局自适应小示例(用户反馈界面)
- embedding lookup
- TR069协议与商业应用8——移植cwmp到ARM平台运行和测试
- oracle财务官方文档,oracle财务软件简明操作.docx
- AndrOid系统亭子运行,饼干智能好物开箱 篇二十二:给父母换个手机,让他成楼下凉亭的拍照KOL...
- 这个彩蛋表明,图灵测试评估的也许不是计算机,而是人类……
- Win10跳过开机登录界面
- 无线网ppp服务器失败怎么办,【妙招】不能上网怎么办,史上最全宽带故障简单处理办法!...
- ❤️Java中经纬度换算❤️
- YOLOv3测试人物和舰船检测效果
- 使用静默方式安装Oracle数据库软件