目录
1 redis-cli介绍
1.1 执行频率和间隔
-r:repeat表示多次执行
-i:表示每隔几秒执行1次,需要和-r配合使用,可以设置为小数,如-i 0.01,表示每10ms执行一次
如每隔1s输出内存使用量,输出10次
[root@server bin]# ./redis-cli -r 10 -i 1 info | grep used_memory_human
used_memory_human:835.11K
used_memory_human:835.11K
used_memory_human:835.11K
used_memory_human:835.11K
used_memory_human:835.11K
1.2 集群环境连接
-c:连接cluster的时候使用,防止moved和ask异常
1.3 认证连接
-a:auth,如果redis配置密码,则直接输入密码连接
1.4 大key查询
--bigkeys:使用scan命令对redis进行采样,找到内存占用比较大的键值
Biggest string found 'hello' has 5 bytes
Biggest list found 'list1' has 4 items
Biggest set found 'user1:follow' has 3 members
Biggest hash found 'user1' has 2 fields
Biggest zset found 'class1:score' has 2 members
4 strings with 8 bytes (50.00% of keys, avg size 2.00)
1 lists with 4 items (12.50% of keys, avg size 4.00)
1 sets with 3 members (12.50% of keys, avg size 3.00)
1 hashs with 2 fields (12.50% of keys, avg size 2.00)
1 zsets with 2 members (12.50% of keys, avg size 2.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
1.5 查看网络延迟
redis-cli ./redis-cli -h 192.168.249.201 --latency:查看平均网络延迟
--latency-history:分时段查看平均网络延迟,如每5s输出一次
[root@server bin]# ./redis-cli --latency-history -i 5
min: 0, max: 1, avg: 0.19 (408 samples) -- 5.01 seconds range
min: 0, max: 1, avg: 0.19 (409 samples) -- 5.00 seconds range
min: 0, max: 1, avg: 0.15 (416 samples) -- 5.00 seconds range
--latency-dist:以统计图的形式输出延迟统计信息
1.6 查看redis信息(内存、连接等)
--stat:实时获取redis统计信息
[root@server bin]# ./redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
8 835.26K 1 0 3029 (+0) 11
8 835.26K 1 0 3030 (+1) 11
8 835.26K 1 0 3031 (+1) 11
8 835.26K 1 0 3032 (+1) 11
8 835.26K 1 0 3033 (+1) 11
8 835.26K 1 0 3034 (+1) 11
8 835.26K 1 0 3035 (+1) 11
8 835.26K 1 0 3036 (+1) 11
2 redis-benchmark介绍
redis-benchmark用于对redis做基准性能测试,提供很多参数来进行测试
2.1 并发数和请求量
-c:表示客户端并发数
-n:客户端请求总量
100个客户端同时请求redis,执行20000次:./redis-benchmark -c 100 -n 20000
====== SET ======
20000 requests completed in 0.21 seconds
100 parallel clients
3 bytes payload
keep alive: 1
97.48% <= 1 milliseconds
99.50% <= 67 milliseconds
99.70% <= 68 milliseconds
100.00% <= 69 milliseconds
100.00% <= 69 milliseconds
93896.71 requests per second
====== GET ======
20000 requests completed in 0.13 seconds
100 parallel clients
3 bytes payload
keep alive: 1
97.69% <= 1 milliseconds
99.60% <= 2 milliseconds
100.00% <= 2 milliseconds
150375.94 requests per second
2.2 统计每秒并发量
-q:仅显示每秒并发量
[root@server bin]# ./redis-benchmark -c 100 -n 20000 -q
PING_INLINE: 145985.41 requests per second
PING_BULK: 129870.13 requests per second
SET: 165289.25 requests per second
GET: 133333.33 requests per second
INCR: 148148.14 requests per second
LPUSH: 162601.62 requests per second
2.3 随机键插入测试
-r:random,向redis中插入大量随机键,-r表示只对后四位做随机处理
对每个数据结构随机增加100个key:./redis-benchmark -c 10 -n 100 -r 10000,执行后效果如下
127.0.0.1:6379> dbsize
(integer) 1249
127.0.0.1:6379> keys *
1196) "counter:000000009344"
1197) "key:000000006841"
1198) "key:000000004586"
1199) "key:000000006487"
1200) "key:000000007713"
1201) "key:000000003935"
1202) "key:000000008167"
1203) "key:000000009269"
1204) "myset:000000001156"
1205) "counter:000000006877"
1206) "key:000000005173"
1207) "myset:000000005548"
1208) "key:000000009117"
1209) "counter:000000009654"
1210) "key:000000003509"
1211) "key:000000004813"
1212) "myset:000000003578"
1213) "counter:000000004276"
1214) "key:000000008030"
1215) "key:000000008689"
1216) "key:000000003146"
1217) "key:000000002018"
1218) "key:000000008340"
1219) "key:000000002460"
1220) "key:000000002108"
1221) "key:000000007582"
1222) "key:000000006778"
1223) "key:000000009298"
1224) "key:000000004569"
1225) "key:000000000071"
1226) "hello"
1227) "key:000000001075"
1228) "key:000000001784"
2.4 对指定命令测试
-t:对指定命令测试
[root@server bin]# ./redis-benchmark -t get,set -q
SET: 169491.53 requests per second
GET: 166389.34 requests per second
2.5 CSV格式输出
-- csv:按照csv格式输出
[root@server bin]# ./redis-benchmark -t get,set --csv
"SET","150829.56"
"GET","184162.06"