Redis benchmark

12/19/2021 Redis

# 一:前言

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

-c(clients):客户端的并发数量(默认是50) -n<requests>(num):客户端请求总数(默认是100_000) -q:仅仅显示redis-benchmark的requests per second信息 -r(random):插入随机键,控制命令,非个数 -P:每个请求pipeline的数据量(默认为1) -k<boolean>:客户端是否使用keepalive,1为使用,0为不使用,默认值为1 -t:可以对指定命令进行基准测试 --csv:会将结果按照csv格式输出

## -c -n
### 100个客户端同时请求Redis,一共执行20000次。
> redis-benchmark -c 100 -n 20000
====== GET ======
	20000 requests completed in 0.27 seconds
    100 parallel clients 
    3 bytes payload 
    keep alive: 1 
99.11% <= 1 milliseconds 
100.00% <= 1 milliseconds
73529.41 requests per second
### 上面一共执行了20000次get操作,在0.27秒完成,每个请求数据量是3个字节,99.11%的命令执行时间小于1毫秒,Redis每秒可以处理73529.41次get请求。

## -q
redis-benchmark -c 100 -n 20000 -q 
PING_INLINE: 74349.45 requests per second 
PING_BULK: 68728.52 requests per second 
SET: 71174.38 requests per second… 
LRANGE_500 (first 450 elements): 11299.44 requests per second 
LRANGE_600 (first 600 elements): 9319.67 requests per second 
MSET (10 keys): 70671.38 requests per second

## -r
### 执行redis-benchmark,默认只新增三个随机键
> dbsize (integer) 
3 
> keys * 
1) "counter:__rand_int__" 
2) "mylist" 
3) "key:__rand_int__"
### 使用-r选项,会在key、counter键上加一个12位的后缀
### -r 10000代表只对后四位做随机处理(-r不是随机数的个数)
> redis-benchmark -c 100 -n 20000 -r 10000
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"

## -t
> redis-benchmark -t get,set -q 
SET: 98619.32 requests per second 
GET: 97560.98 requests per second

## --csv
redis-benchmark -t get,set --csv 
"SET","81300.81" 
"GET","79051.38"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

# 二:参考文献

最后更新: 12/20/2021, 10:44:57 AM