1. redis-cli
redis-cli
是Redis命令行工具,允许向Redis发送命令,并在终端显示服务器的回复信息。
redis-cli
有两种使用模式, 一种是命令模式:把redis-cli
作为命令,把Redis的命令作为参数发送给redis-cli
,执行并打印输出结果到终端;另一种是交互模式,也是我们常用的模式。
1.1. 命令模式
命令模式是把redis-cli
当作一个命令来使用,而Redis的命令都作为参数传给redis-cli
命令,最终把Reids命令的执行结果打印在终端,它的语法一般是:
$ redis-cli -h {host} -p {port} -a {password} {command}
如果是连接本机的Redis服务,则 -h
和-p
参数可省略:
$ redis-cli dbsize
(integer) 2
$ redis-cli keys '*'
1) "key1"
2) "db_number"
如果连接非本机Redis服务,则需要指定主机和端口:
$ redis-cli -h redis.dev.7mxing.com -p 6379 ping
PONG
$ redis-cli -h redis.dev.7mxing.com -p 6379 dbsize
(integer) 244
1.2. 交互模式
命令模式是把redis-cli
当作一个命令行程序使用,一般用在脚本或某些测试场景中。大多数情况下大部分时间都会用redis-cli
的交互模式。
在交互模式下,用户在提示符下键入Redis命令,该命令被发送到服务器进行处理,关在终端打印出服务器的响应结果。
进入交互模式很简单:redis-cli -h {host} -p {port}
即可,如果是本机,不需要-h
和-p
参数。
$ bin/redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> get hello
"world"
字符串127.0.0.1:6379>
是提示符,它提示所连接的Redis实例,如果连接的数据库索引非零的数据库,提示会显示数据库的序号:
127.0.0.1:6379> select 10
OK
127.0.0.1:6379[10]> DBSIZE
(integer) 0
1.3. 历史记录和命令补全
历史纪录:所执行命令的历史记录存储在
~/.rediscli_history
文件中,可以使用上下箭头来选择历史命令。可以通过设置REDISCLI_HISTFILE
来使用不同的历史文件名,也可以通过设置为/dev/null
来禁用历史记录。命令补全:可以通过按TAB键来补全Redis命令:
127.0.0.1:6379> Z<TAB> 127.0.0.1:6379> ZADD<TAB> 127.0.0.1:6379> ZCARD<TAB>
1.4. 帮助
help
命令可以用来查看帮助,主要有两种用法:
help @<category>
显示指定组的所有命令,组的类别有:@generic,@list,@set,@sorted_set,@hash, @pubsub,@transactions,@connection,@server,@scripting, @hyperloglog127.0.0.1:6379> help @connection AUTH password summary: Authenticate to the server since: 1.0.0 ECHO message summary: Echo the given string since: 1.0.0 PING [message] summary: Ping the server since: 1.0.0 QUIT - summary: Close the connection since: 1.0.0 SELECT index summary: Change the selected database for the current connection since: 1.0.0
help <commandname>
显示指定命令的帮助。127.0.0.1:6379> help PING PING [message] summary: Ping the server since: 1.0.0 group: connection
1.5. 参数
可以使用redis-cli --help
来查看所有的参数说明:
1.5.1. -h <hostname>
Server hostname (default: 127.0.0.1).
1.5.2. -p <port>
Server port (default: 6379).
1.5.3. -a <password>
Password to use when connecting to the server.
1.5.4. -r <repeat>
将命令重复执行N次。
```bash
$ redis-cli -r 3 ping
PONG
PONG
PONG
```
1.5.5. -i <interval>
每隔几秒(如果想用ms,如10ms则写0.01)执行一次命令,必须与-r一起使用。
$ redis-cli -r 3 -i 2 ping
PONG
PONG
PONG
$redis-cli -r 10 -i 1 info|grep used_memory_human
used_memory_human:2.95G
.....................................
used_memory_human:2.95G
每隔1秒输出内存的使用量,一共输出10次。
$redis-cli -h ip -p port info server|grep process_id
process_id:999
获取redis的进程号999
1.5.6. --no-raw
1.5.7. --raw
返回Redis的原始回复,输出终端不是tty情况下的默认值。
Original: Use raw formatting for replies (default when STDOUT is not a tty). Redis有多种类型,所以默认返回的数据是经过加工的,此参数要求返回未经加工的原始数据;
$ redis-cli --no-raw dbsize
(integer) 2
$ redis-cli --raw dbsize
2
1.6. 特殊模式
到目前为止,我们看到了两种主要模式redis-cli
。
- 命令行执行Redis命令。
- 互动“类似REPL”的用法。 但是,CLI会执行与Redis相关的其他辅助任务:
- 监控工具可显示有关Redis服务器的连续统计信息。
- 扫描Redis数据库以获取非常大的密钥。
- 钥匙空间扫描仪与模式匹配。
- 作为出版社/子客户端订阅频道。
- 监视执行到Redis实例的命令。
- 以不同的方式检查Redis服务器的延迟。
- 检查本地计算机的调度器延迟。
- 从远程Redis服务器本地传输RDB备份。
- 作为Redis奴隶,显示奴隶收到的。
- 模拟LRU工作负载以显示有关键命中的统计信息。
- Lua调试器的客户端。
这些任务以后再具体讲解。