redis-cli 命令详解

redis-cli命令使用

命令语法
redis-cli [OPTIONS] [cmd [arg [arg ...]]]
选项说明
  -h <hostname>      Server hostname (default: 127.0.0.1). ip地址
  -p <port>          Server port (default: 6379). 服务器端口号
  -s <socket>        Server socket (overrides hostname and port).
  -a <password>      Password to use when connecting to the server. 密码
  -u <uri>           Server URI. url格式的地址
  -r <repeat>        Execute specified command N times.
  -i <interval>      When -r is used, waits <interval> seconds per command.
                     It is possible to specify sub-second times like -i 0.1.
  -n <db>            Database number. 指定数据库
  -x                 Read last argument from STDIN.
  -d <delimiter>     Multi-bulk delimiter in for raw formatting (default: \n).
  -c                 Enable cluster mode (follow -ASK and -MOVED redirections).
  --raw              Use raw formatting for replies (default when STDOUT is
                     not a tty).
  --no-raw           Force formatted output even when STDOUT is not a tty.
  --csv              Output in CSV format.
  --stat             Print rolling stats about server: mem, clients, ... 统计数据 连续输出
  --latency          Enter a special mode continuously sampling latency.
                     If you use this mode in an interactive session it runs
                     forever displaying real-time stats. Otherwise if --raw or
                     --csv is specified, or if you redirect the output to a non
                     TTY, it samples the latency for 1 second (you can use
                     -i to change the interval), then produces a single output
                     and exits. 延时统计
  --latency-history  Like --latency but tracking latency changes over time.
                     Default time interval is 15 sec. Change it using -i.
  --latency-dist     Shows latency as a spectrum, requires xterm 256 colors.
                     Default time interval is 1 sec. Change it using -i.
  --lru-test <keys>  Simulate a cache workload with an 80-20 distribution.
  --replica          Simulate a replica showing commands received from the master.
  --rdb <filename>   Transfer an RDB dump from remote server to local file. 导出rdb文件
  --pipe             Transfer raw Redis protocol from stdin to server.
  管道模式
  --pipe-timeout <n> In --pipe mode, abort with error if after sending all data.
                     no reply is received within <n> seconds.
                     Default timeout: 30. Use 0 to wait forever.
                     管道超时
  --bigkeys          Sample Redis keys looking for big keys.
  --hotkeys          Sample Redis keys looking for hot keys.
                     only works when maxmemory-policy is *lfu.
  --scan             List all keys using the SCAN command.获取服务器所有的键
  --pattern <pat>    Useful with --scan to specify a SCAN pattern.
  正则表达式 用于scan命令中
  --intrinsic-latency <sec> Run a test to measure intrinsic system latency.
                     The test will run for the specified amount of seconds.
  --eval <file>      Send an EVAL command using the Lua script at <file>.
  --ldb              Used with --eval enable the Redis Lua debugger.
  --ldb-sync-mode    Like --ldb but uses the synchronous Lua debugger, in
                     this mode the server is blocked and script changes are
                     not rolled back from the server memory.
  --cluster <command> [args...] [opts...]
                     Cluster Manager command and arguments (see below).
  --verbose          Verbose mode.
  --no-auth-warning  Don't show warning message when using password on command
                     line interface.

注意:

  1. -u选项中url格式参考文档https://www.iana.org/assignments/uri-schemes/prov/redis 格式为:redis://user:secret@localhost:6379/0?foo=bar&qux=baz

 示例:

1、--stat:统计keys、内存、连接数、blocked、quests、connections:连续统计、持续打印

C:\Program Files\Redis>redis-cli.exe -c -h xxx -p 6379 --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections
16139      9.48M    95      50      492196818 (+0)      9500666
16139      9.41M    95      50      492196822 (+4)      9500666
16139      9.52M    95      50      492196877 (+55)     9500666
16138      9.44M    95      50      492196931 (+54)     9500666
^C
C:\Program Files\Redis>

列表中选项说明:

选项含义
keys server中key的数量
mem 键值对的总内存量
clients 当前连接的总clients数量
blocked 当前阻塞的客户端数量
requests 服务器请求总次数 (+1) 截止上次请求增加次数
connections 服务器连接次数

 2、--latency:延时统计

C:\Program Files\Redis>redis-cli.exe -c -h hk-test-redi.o1imvs.0001.ape1.cache.amazonaws.com -p 6379 --latency
min: 13, max: 46, avg: 17.35 (60 samples)^C
C:\Program Files\Redis>

 

3、--bigkeys:找出各种数据类型的最大键值对

C:\Program Files\Redis>redis-cli.exe -c -h xxx -p 6379 --bigkeys

# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).

[00.00%] Biggest string found so far 'duan_1' with 1 bytes
[00.00%] Biggest hash   found so far 'sites' with 4 fields
[00.00%] Biggest set    found so far 'myset1' with 3 members
[00.00%] Biggest string found so far 'aaaaa111' with 3 bytes
[71.43%] Biggest string found so far 'palmpay_reinterpret_member' with 10 bytes

-------- summary -------

Sampled 14 keys in the keyspace!
Total key length in bytes is 106 (avg len 7.57)

Biggest string found 'palmpay_reinterpret_member' has 10 bytes
Biggest    set found 'myset1' has 3 members
Biggest   hash found 'sites' has 4 fields

12 strings with 24 bytes (85.71% of keys, avg size 2.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
1 sets with 3 members (07.14% of keys, avg size 3.00)
1 hashs with 4 fields (07.14% of keys, avg size 4.00)
0 zsets with 0 members (00.00% of keys, avg size 0.00)

C:\Program Files\Redis>

该选项实现:通过使用scan命令遍历server中的键值对,针对不同数据类型进行统计。

4、--hotkeys:找出server中热点key 命令:redis-cli --hotkeys

选项实现:

  1. redis实现8种缓存淘汰策略:

    voltile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

    volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

    volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰

    volatile-lfu: 从已设置过期时间的数据集驱逐使用频率最少的键

    allkeys-lru:从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

    allkeys-lfu: 从所有键中驱逐使用频率最少的键

    allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰

    no-enviction(驱逐):禁止驱逐数据 当内存不足以容纳新写入数据时,新写入操作会报错

    需要设置淘汰策略为lru或者lfu

5、--scan:游标扫描redis槽

 

结合linux命令 more 查看

 

命令:redis-cli -h host -p port --scan | more

 

匹配:--pattern '*hello*'

 

命令:redis-cli -h 10.10.52.100 -p 10119 --scan --pattern '*hello*'

 

输出:

 

 

统计:| wc -l

 

命令:redis-cli -h 10.10.52.100 -p 10119 --scan --pattern '*hello*' | wc -l

 

6、-n:选择库

7、--eval<file>:执行lua脚本

8、--rdb:导入rdb文件

root@hylaz:~# redis-cli --rdb rdb.log
SYNC sent to master, writing 344 bytes to 'rdb.log'
Transfer finished with success.

该命令选项实现:

  1. 向server发送SYNC命令,返回需要写的总字节数
  2. 从server读取总字节数据写到指定文件中

9、 --lru-test 测试Redis的LRU实现的质量

模拟使用80-20%幂律分布来执行对GET和SET操作的模拟。

命令:redis-cli -h host -p port --lru-test 测试键数

输出:

C:\Program Files\Redis>redis-cli.exe -c -h xxx -p 6379 --lru-test duan_1
7750 Gets/sec | Hits: 7750 (100.00%) | Misses: 0 (0.00%)
7750 Gets/sec | Hits: 7750 (100.00%) | Misses: 0 (0.00%)
7750 Gets/sec | Hits: 7750 (100.00%) | Misses: 0 (0.00%)
6750 Gets/sec | Hits: 6750 (100.00%) | Misses: 0 (0.00%)
^C
C:\Program Files\Redis>

10、-r 连续重复执行

C:\Program Files\Redis>redis-cli.exe -c -h xxx -p 6379 -r 10 incr duan_1
(integer) 2
(integer) 3
(integer) 4
(integer) 5
(integer) 6
(integer) 7
(integer) 8
(integer) 9
(integer) 10
(integer) 11

C:\Program Files\Redis>

 

参考:https://www.cnblogs.com/hylazphp/p/10153481.html

posted on 2016-05-06 20:25  duanxz  阅读(3324)  评论(0编辑  收藏  举报