本文档将一些 redis-cli
的日常使用较多的用法整理如下,以方便查阅。
完整版使用可以参考 redis 官方文档《 redis-cli, the Redis command line interface》
连接
$ redis-cli -h <ip> -p <port> -a <passwd> -n <dbid> ping
PONG
-
-h
redis 服务器 ip -
-p
redis 服务器 port -
-a
密码 -
-n
选择要使用的 db
数据导入
加 -x
选项,将 /etc/services
中的内容作为 foo 的 value。
$ redis-cli -x set foo < /etc/services
OK
将多个命令写入到文本中,它们可以一次接一个地被执行到。
$ 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"
使用 pipeline 做一次性导入数据。
cat data.txt | redis-cli --pipe
data.txt 文件接受两个格式。
1)将 commands.txt 转成的redis 协议格式
2)使用 unix2doc 命令处理过的 commands.txt 文件
使用 lua 脚本导入数据。
$ cat /tmp/script.lua
return redis.call('set',KEYS[1],ARGV[1])
$ redis-cli --eval /tmp/script.lua foo , bar
OK
执行
$ redis-cli -r 3 -i 1 INFO | grep rss_human
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
used_memory_rss_human:1.38M
-
-r
相同命令执行次数 (count),值为 -1 表示永远执行下去 -
-i
命令执行间隔多少秒 (delay),默认值为 0
数据导出
--csv
选项,数据以 csv 格式导出。
$ redis-cli lpush mylist a b c d
(integer) 4
$ redis-cli --csv lrange mylist 0 -1
"d","c","b","a"
--rdb
选项,将所连接的实例中的数据以 rdb 的格式导出。
$ redis-cli --rdb /tmp/dump.rdb
SYNC sent to master, writing 13256 bytes to '/tmp/dump.rdb'
Transfer finished with success.
统计相关
--stat
选项可以做一些实时统计
$ redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
506 1015.00K 1 0 24 (+0) 7
506 1015.00K 1 0 25 (+1) 7
506 3.40M 51 0 60461 (+60436) 57
506 3.40M 51 0 146425 (+85964) 107
507 3.40M 51 0 233844 (+87419) 157
507 3.40M 51 0 321715 (+87871) 207
508 3.40M 51 0 408642 (+86927) 257
508 3.40M 51 0 497038 (+88396) 257
--bigkeys
选项永远扫描大 key
$ redis-cli --bigkeys
--scan
选项,可以配合 --pattern
一起用来批量扫描 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
--latency
选项可以用来统计耗时。
$ redis-cli --latency
min: 0, max: 1, avg: 0.19 (427 samples)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。