输入 redis-cli 连接到命令行客户端(默认host=127.0.0.1,port=6379)
[root@vmzq1l0l ~]# redis-cli
127.0.0.1:6379>
-h(host:主机)选项代表主机IP,不输入默认为127.0.0.1
[root@vmzq1l0l ~]# redis-cli -h 127.0.0.1
127.0.0.1:6379>
-p(port:端口)选项代表端口号,不输入默认为6379
[root@vmzq1l0l ~]# redis-cli -p 6379
127.0.0.1:6379>
-r(repeat:重复)选项表示将命令执行多次,例如执行三次ping操作
[root@vmzq1l0l ~]# redis-cli -r 3 ping
PONG
PONG
PONG
-i(interval:间隔)选项表示间隔多少秒执行一次命令,但是 -i 必须要和 -r 一起使用,例如每隔1秒执行一次ping命令,总共执行3次
[root@vmzq1l0l ~]# redis-cli -r 3 -i 1 ping
PONG
PONG
PONG
-x选项表示从标准输入(stdin)读取数据作为redis-cli的最后一个参数,例如下面的操作会将字符串”It’s a dog”作为键Goofy的值(echo的-e表示开启转义,\c表示不换行)
[root@vmzq1l0l ~]# echo -e "It's a dog\c" | redis-cli -x set Goofy
OK
[root@vmzq1l0l ~]# redis-cli
127.0.0.1:6379> get Goofy
"It's a dog"
-c(cluster:集群)选项是连接Redis Cluster节点时需要使用的,-c选项可以防止moved和ask异常
-a(authority:权限)如果Redis配置了密码,可以用-a选项,有了这个选项就不需要手动输入auth命令。
–scan选项和–pattern选项用于扫描指定模式的键,相当于使用scan命令
–slave项是把当前客户端模拟成当前Redis节点的从节点,可以用来获取当前Redis节点的更新操作
第一个客户端开启slave
[root@vmzq1l0l ~]# redis-cli --slave
SYNC with master, discarding 884 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
第二个客户端做set字符串操作
[root@vmzq1l0l ~]# redis-cli
127.0.0.1:6379> set hello world
OK
此时第一个客户端
[root@vmzq1l0l ~]# redis-cli --slave
SYNC with master, discarding 884 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","hello","world"
–rdb选项会请求Redis实例生成并发送RDB持久化文件,保存在本地。可使用它做持久化文件的定期备份
–pipe选项用于将命令封装成Redis通信协议定义的数据格式,批量发送给Redis执行;例如下面操作同时执行了set hello world和incr counter两条命令
$ 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
–bigkeys选项使用scan命令对Redis的键进行采样,从中找到内存占用比较大的键值,这些键可能是系统的瓶颈
–eval选项用于执行指定Lua脚本
latency有三个选项,分别是–latency、–latency-history、–latency-dist。它们都可以检测网络延迟,对于Redis的开发和运维非常有帮助
–stat(statistics:统计)选项可以实时获取Redis的重要统计信息,虽然info命令中的统计信息更全,但是能实时看到一些增量的数据(例如requests)对于Redis的运维还是有一定帮助的
[root@vmzq1l0l ~]# redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
27 2.06M 12 0 7696 (+0) 66
27 2.06M 12 0 7697 (+1) 66
27 2.06M 12 0 7698 (+1) 66
.
.
.
–no-raw选项是要求命令的返回结果必须是原始的格式,–raw恰恰相反,返回格式化后的结果,设置一个键为hello的value为中文“你好”,正常get会返回一个二进制格式的结果,加了–raw就会返回正常的中文字符
[root@vmzq1l0l ~]# redis-cli set hello "你好"
OK
[root@vmzq1l0l ~]# redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
[root@vmzq1l0l ~]# redis-cli --raw get hello
你好