redis-cli
2. redis-cli 的两种模式
它有两种主要模式:交互模式,其中有 REPL(ReadEvalPrint 循环),用户输入命令并获取回复;另一种模式,命令作为 redis-cli 的参数发送,执行,并打印在标准输出上。
3. redis-cli 标准输入输出模式实例
3.1 标准输出
$ redis-cli incr mycounter
(integer) 1
$ redis-cli incr mycounter > /tmp/output.txt
$ cat /tmp/output.txt
2
$ redis-cli --raw incr mycounter
3
$ redis-cli --no-raw incr mycounter > /tmp/output.txt
$ cat /tmp/output.txt
(integer) 4
3.2 连接指定 ip,端口的 redis 服务器。
默认,redis-cli 连接 127.0.0.1:6379。需要连接自定义的 redis 服务器,如下:
$ redis-cli -h redis15.localnet.org -p 6390 -a myUnguessablePazzzzzword123 ping
PONG
-h,指定服务器的 IP 或者域名
-p,指定端口
-a,指定访问密码。
-n,指定访问哪个数据库。默认,redis 有 16 个数据库,从 0-15 表示。示例如下:
$ redis-cli flushall
OK
$ redis-cli -n 1 incr a
(integer) 1
$ redis-cli -n 1 incr a
(integer) 2
$ redis-cli -n 2 incr a
(integer) 1
上面的各个参数等同于下面的用 -u 模式:
$ redis-cli -u redis://p%40ssw0rd@redis-16379.hosted.com:16379/0 ping
PONG
3.3 导入数据
2 种方式,一是从标准输入导入,如下:
$ redis-cli -x set foo < /etc/services
OK
$ redis-cli getrange foo 0 50
"#\n# Network services, Internet style\n#\n# Note that "
$ redis-cli get foo
或者把 redis 命令放在一个 txt 文本里:
$ cat /tmp/commands.txt
set foo 100
incr foo
append foo xxx
get foo
$ cat /tmp/commands.txt | redis-cli
OK
(integer) 101
(integer) 6
"101xxx"
3.4 重复执行同一个命令多次
$ redis-cli -r 5 -i 1 incr foo1
(integer) 1
(integer) 2
(integer) 3
(integer) 4
(integer) 5
-r,执行的次数
-i,执行命令的间隔
-l,表示持续输出,如下例子:
$ redis-cli -r -1 -i 1 INFO | grep rss_human
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
... a new line will be printed each second ...
3.5 输出到 csv 文件:
$ redis-cli lpush mylist a b c d
(integer) 4
$ redis-cli --csv lrange mylist 0 -1
"d","c","b","a"
4. redis 交互模式示例
5. 一些其他操作
5.1 查看 redis 状态
$ redis-cli -i 3 --stat
-i,信息输出的时间间隔
5.2 获取一组 key
$ redis-cli --scan | head -10
key-419
key-71
key-236
key-50
key-38
key-458
key-453
key-499
key-446
key-371
匹配指定模式的 key:
$ redis-cli --scan --pattern '*-11*'
key-114
key-117
key-118
key-113
key-115
key-112
key-119
key-11
key-111
key-110
key-116
统计数量:
$ redis-cli --scan --pattern 'user:*' | wc -l
3829433
5.3 测试延迟:
$ redis-cli --latency
min: 0, max: 1, avg: 0.19 (427 samples)
$ redis-cli --latency-history
min: 0, max: 1, avg: 0.14 (1314 samples) -- 15.01 seconds range
min: 0, max: 1, avg: 0.18 (1299 samples) -- 15.00 seconds range
min: 0, max: 1, avg: 0.20 (113 samples)^C
5.4 RDB 文件的远程备份
$ redis-cli --rdb /tmp/dump.rdb
SYNC sent to master, writing 13256 bytes to '/tmp/dump.rdb'
Transfer finished with success.
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于