CentOS环境下Redis性能测试方法
在开始测试前,需完成以下基础配置:
yum install epel-release && yum install redis安装Redis(CentOS 7/8均适用);systemctl start redis启动服务,systemctl enable redis设置开机自启;redis-cli ping验证服务是否正常(返回PONG表示成功);redis.conf中的bind 0.0.0.0并重启服务)。redis-benchmark是Redis官方提供的性能测试工具,无需额外安装,直接通过Redis安装目录的src文件夹调用(如/usr/local/redis/src/redis-benchmark)。
| 参数 | 说明 | 默认值 |
|---|---|---|
-h |
Redis服务器地址 | 127.0.0.1 |
-p |
Redis服务器端口 | 6379 |
-c |
并发连接数(模拟的客户端数量) | 50 |
-n |
总请求数(测试的总操作次数) | 10000 |
-d |
SET/GET命令的value大小(单位:字节) | 2 |
-t |
指定测试的命令(如set,get,lrange,多命令用逗号分隔) |
所有命令 |
-P |
管道(Pipeline)批量请求数(减少网络往返时间) | 1 |
-q |
仅显示QPS(每秒查询数),简化输出 |
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000 -d 100 -t set,get
redis-benchmark -h 192.168.1.100 -p 6379 -a yourpassword -c 200 -n 200000 -d 32 -t set
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 -P 50
测试结果会输出各项指标,重点关注:
18903.59 requests per second表示SET命令的QPS约为1.8万);98.64% <= 1 milliseconds表示98.64%的请求响应时间≤1ms;errors: X%(正常情况应为0%)。JMeter是Java编写的性能测试工具,适合需要图形化界面、复杂场景(如结合Web应用)的测试。
apache-jmeter-5.6.3.tgz),解压到指定目录;Options -> Plugins Manager,搜索“Redis Data Set”或“JMeter Redis Plugin”并安装;Thread Group(线程组):设置并发用户数(如100)、循环次数(如10);JDBC Connection Configuration(或Redis专用插件):填写Redis服务器地址、端口、密码;Redis Request:选择操作类型(如SET、GET),配置参数(如key前缀、value内容);Listener(监听器):如“View Results Tree”(查看详细结果)、“Summary Report”(汇总报告)。CSV Data Set Config实现参数化(如从文件读取key/value),模拟动态数据。Memtier是专门为Redis/Memcached设计的高性能测试工具,支持多线程、批量操作,适合大规模集群测试。
wget https://github.com/RedisLabs/memtier_benchmark/archive/refs/tags/v1.2.19.tar.gz
tar -xzf v1.2.19.tar.gz
cd memtier_benchmark-1.2.19
make && make install
memtier_benchmark -s 127.0.0.1 -p 6379 -c 100 -n 10000 -d 100 -t set,get
memtier_benchmark -s 192.168.1.100:6379,192.168.1.101:6379 -c 200 -n 20000 -t set,get
Memtier的输出更简洁,重点关注:
top、free -h、iftop命令),判断是否成为瓶颈。-P参数增加批量请求数(如-P 100),减少网络往返时间,显著提升QPS;-c参数(如从50到200),找到最佳并发数;redis.conf中的maxmemory(限制最大内存)、save(持久化策略)、threads(Redis 6+的多线程IO)等参数;