Redis学习笔记—redis-benchmark详解

redis-benchmark可以为Redis做基准性能测试,它提供了很多选项帮助开发和运维人员测试Redis的相关性能

-c

-c(clients)选项代表客户端的并发量(默认50)

-n

-n(num)选项代表客户端请求数量(默认100000)

例如测试100个客户端一共请求20000次

[root@vmzq1l0l ~]# redis-benchmark -c 100 -n 20000

redis-benchmark会对各类数据结构的命令进行测试,并给出性能指标

====== MSET (10 keys) ======
  20000 requests completed in 0.28 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

51.86% <= 1 milliseconds
93.78% <= 2 milliseconds
97.22% <= 3 milliseconds
98.67% <= 4 milliseconds
99.65% <= 5 milliseconds
99.87% <= 7 milliseconds
99.92% <= 8 milliseconds
100.00% <= 8 milliseconds
70921.98 requests per second

上面一共执行了20000次get操作,在0.28秒完成,每个请求数据量是3个字节,51.89%的命令执行时间小于1毫秒,···,99.92%的命令执行时间小于8毫秒,Redis每秒可以处理70921.98次get请求

-q

-q选项仅仅显示redis-benchmark的requests per second信息

-r

在一个空的Redis上执行了redis-benchmark会发现只有3个键

127.0.0.1:6379> dbsize
(integer) 3
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "key:__rand_int__"

如果想向Redis插入更多的键,可以执行使用-r(random)选项,可以向Redis插入更多随机的键

[root@vmzq1l0l ~]# redis-benchmark -c 100 -n 20000 -r 10000

-r选项会在key、counter键上加一个12位的后缀,-r10000代表只对后四位做随机处理(-r不是随机数的个数)。例如上面操作后,key的数量和结果结构如下

127.0.0.1:6379> dbsize
(integer) 18641
127.0.0.1:6379> scan 0
1) "14336"
2) 1) "key:000000004580"
2) "key:000000004519"
…
10) "key:000000002113"
-P

-P选项代表每个请求pipeline的数据量(默认为1)

-k

-k选项代表客户端是否使用keepalive,1为使用,0为不使用,默认值为1

-t

-t选项可以对指定命令进行基准测试

[root@vmzq1l0l ~]# redis-benchmark -t get,set -q
SET: 59453.03 requests per second
GET: 60901.34 requests per second
–csv

–csv选项会将结果按照csv格式输出,便于后续处理,如导出到Excel等

[root@vmzq1l0l ~]# redis-benchmark -t get,set -q --csv
"SET","63532.40"
"GET","81967.21"

发表评论

邮箱地址不会被公开。 必填项已用*标注