# 一:参数说明
用法:
## 例如:redis-cli -h {host} -p {port}
redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
## 例如:redis-cli -h {host} -p {port} {command}
redis-cli -h 127.0.0.1 -p 6379 get hello
"world"
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
-h(host):地址,默认连接127.0.0.1
-p(port):端口,默认6379
-r(repeat):将命令执行多次
-i(interval):代表每隔几秒执行一次命令 ;必须和-r
选项一起使用 -x:从标准输入(stdin)读取数据作为redis-cli的最后一个参数
-c(cluster):连接Redis Cluster节点时需要使用的,-c
选项可以防止moved和ask异常
-a(auth):密码选项
--scan和--pattern:用于扫描指定模式的键,相当于使用 scan
命令
--slave:把当前客户端模拟成当前Redis节点的从节点,可以用来获取当前Redis节点的更新操作。合理的利用这个选项可以记录当前连接Redis节点的一些更新操作,这些更新操作很可能是实际开发业务时需要的数据
--rdb:请求Redis实例生成并发送RDB持久化文件,保存在本地。可使用它做持久化文件的定期备份
--pipe:用于将命令封装成Redis通信协议定义的数据格式,批量发送给Redis执行
--bigkeys:使用scan命令对Redis的键进行采样,从中找到内存占用比 较大的键值,这些键可能是系统的瓶颈
--eval:用于执行指定Lua脚本
--latency:有三个选项,分别是--latency、--latency-history、--latency-dist。它们都可以检测网络延迟
--stat:可以实时获取Redis的重要统计信息,虽然info命令中的统计信息更全,但是能实时看到一些增量的数据(例如request)
--raw和--no-raw:要求命令的返回结果必须是原始的格式,--raw恰恰相反,返回格式化后的结果。
## -r
### 执行三次ping命令
> redis-cli -r 3 ping
PONG
PONG
PONG
## -i -r
### 每隔1秒执行一次ping命令,共执行5次
> redis-cli -r 5 -i 0.01 ping
PONG
PONG
PONG
PONG
PONG
### 每隔1秒输出内存的使用量,一共输出100次
> redis-cli -r 100 -i 1 info | grep used_memory_human
used_memory_human:2.95G
used_memory_human:2.95G
... ...
used_memory_human:2.95G
## -x
### 将字符串world作为set hello的值
> echo "world" | redis-cli -x set hello
OK
## --slave参数使用
### 第一个客户端
> redis-cli --slave
SYNC with master, discarding 72 bytes of bulk transfer...
SYNC done. Logging commands from master.
### 第二个客户端做一些更新操作
> redis-cli
redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> incr count
1
127.0.0.1:6379> get hello
"world"
### 第一个客户端,PING命令是由于主从复制产生的
redis-cli --slave
SYNC with master, discarding 72 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","hello","world"
"set","a","b"
"PING"
"incr","count"
## --pipe
> echo -en '*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n*2\r\n$4\r\nincr\r\n$7\r\ncounter\r\n' | redis-cli --pipe
## --latency
### 执行结果只有一条
### 客户端B和Redis在机房B,客户端A在机房A,机房A和机房B是跨地区的:
### 客户端B
> redis-cli -h {machineB} --latency
min: 0, max: 1, avg: 0.07 (4211 samples)
### 客户端A
> redis-cli -h {machineB} --latency
min: 0, max: 2, avg: 1.04 (2096 samples)
### 可以看出客户端A由于距离Redis比较远,平均网络延迟会稍微高一些
## --latency-history
### 以分时段的形式了解延迟信息
redis-cli -h 10.10.xx.xx --latency-history
min: 0, max: 1, avg: 0.28 (1330 samples) -- 15.01 seconds range… min: 0,
max: 1, avg: 0.05 (1364 samples) -- 15.01 seconds range
## --latency-dist
### 使用统计图表的形式从控制台输出延迟统计信息
## --state
> redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
2451959 3.43G 1162 0 7426132839 (+0) 1337356
2451958 3.42G 1162 0 7426133645 (+806) 1337356 …
2452182 3.43G 1161 0 7426150275 (+1303) 1337356
## --raw
> redis-cli set hello "你好"
OK
### 如果正常执行get或者使用--no-raw选项,那么返回的结果是二进制格式:
> redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
> redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
### 如果使用--raw将返回中文
> redis-cli --raw get hello
你好
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# 二:参考文献
- 《Redis深度历险:核心原理和应用实践 - 钱文品》
- 《Redis 开发与运维 - 付磊、张益军》
- 官方文档 (opens new window)