想要进行Redis中的redis-benchmark模块的压力测试,首先需要安装redis
Windows环境
官网:https://redis.io/
推荐使用Linux服务器学习
windows版本的Redis已经停更很久了…
下载地址:https://github.com/dmajkic/redis
1.解压安装包
2.开启redis-server.exe
3.启动redis-cli.exe测试
Linux环境
1.下载安装包!redis-5.0.8.tar.gz
2.解压Redis的安装包!程序一般放在 /opt 目录下
3.基本环境安装
yum install gcc-c++
# 然后进入redis目录下执行
make
# 然后执行
make install
4.redis默认安装路径 /usr/local/bin
5.将redis的配置文件复制到 程序安装目录 /usr/local/bin/myconfig下
6.redis默认不是后台启动的,需要修改配置文件!将no改为yes
7.通过制定的配置文件启动redis服务
8.使用redis-cli连接指定的端口号测试,Redis的默认端口6379
9.查看redis进程是否开启
10.关闭Redis服务 shutdown
好了,现在我们有了redis环境,就可以进行redis压力测试,我们先来介绍一下~~
redis-benchmark简介
redis-benchmark是官方自带的Redis性能测试工具,用来测试Redis在当前环境下的读写性能。在使用Redis的时候,服务器的硬件配置、网络状况、测试环境都会对Redis的性能有所影响,我们需要对Redis实时测试以确定Redis的实际性能。
- 语法格式:
redis-benchmark [参数] [参数值]
测试:
1. redis启动后进入到bin目录中,执行以下命令进行性能测试:
# 执行测试性能命令
./redis-benchmark -t set,get -n 100000
说明:因为测试的是本机的redis性能,所以没有指定IP和端口号。
-t:表示执行以逗号分隔的命令,执行的是set操作和get操作,如果不指定具体的值,测试的结果较多
执行结果如下:
====== SET ======
100000 requests completed in 1.31 seconds
50 parallel clients
3 bytes payload
keep alive: 1
98.64% <= 1 milliseconds
99.85% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 3 milliseconds
76335.88 requests per second
====== GET ======
100000 requests completed in 1.26 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.27% <= 1 milliseconds
100.00% <= 1 milliseconds
79365.08 requests per second
反馈结果:
SET部分和GET部分,只需要关注最后一句输出即可,以GET为例,上述输出:79365.08 requests per second,表示每秒的GET命令处理79365.08个请求,也就是QPS为7.9W个。
这里的数据都是理想数据,测试出来的QPS不能代表实际生产的处理能力,在实际生产中,服务器的硬件配置、网络状况、测试环境都会对Redis的性能有所影响。
那既然提到了QPS,就来了解一下相关概念~
在实际生产中,我们需要关心在应用场景中,redis能够处理的QPS是多少。我们需要估计生产的报文大小,使用benchmark工具指定-d数据块大小来模拟:
./redis-benchmark -t get -n 100000 -c 100 -d 2048
指定并发数为100,数据大小为2048字节,在实际生产中,每个业务处理的数据大小不一致,取出一个最大的数据为基数进行测试即可,在程序里将数据的字节大小打印出来,使用redis-benchmark的-d参数指定数据大小。
执行结果:
====== GET ======
100000 requests completed in 1.37 seconds
100 parallel clients
2048 bytes payload
keep alive: 1
94.15% <= 1 milliseconds
98.86% <= 2 milliseconds
99.80% <= 3 milliseconds
99.90% <= 4 milliseconds
99.92% <= 5 milliseconds
99.93% <= 6 milliseconds
99.96% <= 7 milliseconds
100.00% <= 8 milliseconds
100.00% <= 8 milliseconds
73206.44 requests per second
使用redis客户端登录到redis服务中,执行info命令查看redis的信息。查看结果,输出的信息较多,查看# Memory下面的一些信息。
# 使用Redis客户端
./redis-cli
# 在客户端中执行info命令
127.0.0.1:6379> info
connected_clients:108 #redis连接数
used_memory:8367424 # Redis 分配的内存总量
used_memory_human:7.98M
used_memory_rss:11595776 # Redis 分配的内存总量(包括内存碎片)
used_memory_rss_human:11.06M
used_memory_peak:8367424
used_memory_peak_human:7.98M #Redis所用内存的高峰值
used_memory_peak_perc:100.48%
需要关注used_memory_peak_human(redis已用内存)和used_memory(分配的内存总量),当used_memory_peak_human接近used_memory时就需要注意了。