redis-benchmark可以为Redis做基准性能测试
1.-c
-c(clients)选项代表客户端的并发数量(默认是50)。
2.-n
-n(num)选项代表客户端请求总量(默认是100000)。 例如redis-benchmark-c100-n20000代表100各个客户端同时请求Redis,一 共执行20000次。
redis-benchmark会对各类数据结构的命令进行测试,并给 出性能指标:
====== 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请求。
3.-q
-q选项仅仅显示redis-benchmark的requests per second信息,例如:
$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
4.-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插入更多随机的键。
$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"
5.-P
-P选项代表每个请求pipeline的数据量(默认为1)。
6.-k
-k选项代表客户端是否使用keepalive,1为使用,0为不使用,默认值为 1。
7.-t
-t选项可以对指定命令进行基准测试。
redis-benchmark -t get,set -q
SET: 98619.32 requests per second
GET: 97560.98 requests per second
8. --csv
–csv选项会将结果按照csv格式输出,便于后续处理,如导出到Excel 等。
redis-benchmark -t get,set --csv
"SET","81300.81" "GET","79051.38"