一、介绍
今天继续redis-cli使用的介绍,上一篇文章写了一部分,写到第9个小节,今天就来完成第二部分。话不多说,开始我们今天的讲解。如果要想看第一篇文章,地址如下:二、使用详解 上篇文章写到第9个小节,今天直接按着以上的序号,继续来写 10、特殊的操作模式 到目前为止,我们看到了redis-cli的两种主要模式。 1、命令行执行Redis命令。 2、交互式的“REPL-like”用法。 然而,CLI执行与Redis相关的其他辅助任务,这些任务将在下一节中介绍: 1、监控工具显示有关Redis服务器的连续统计信息。 2、扫描Redis数据库查找非常大的key。 3、与模式匹配的key空间扫描仪。 4、作为Pub/Sub客户订阅频道。 5、监视Redis实例中执行的命令。 6、以不同方式检查Redis服务器的延迟。 7、检查本地计算机的调度程序延迟。 8、从远程Redis服务器传输RDB备份到本地。 9、扮演Redis从节点的角色,展现从节点所接受的东西。 10、模拟LRU工作负载以显示有关按键命中的统计信息。 11、Lua调试器的客户端。 10.1、连续统计模式 这可能是redis-cli的最不常用的功能之一,并且对于实时监控Redis实例来说是非常有用。要启用此模式,使用--stat选项。 在这种模式下,CLI的行为非常清晰的:$ redis-cli -h 192.168.127.130 -p 6379 --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
[root@linux redis]# redis-cli -h 192.168.127.130 -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). # 您可以使用-i 0.1来每100次SCAN命令休息0.1秒(通常不需要)。 [00.00%] Biggest string found so far 'ss' with 1 bytes [00.00%] Biggest string found so far 'foo1' with 25 bytes -------- summary ------- Sampled 5 keys in the keyspace! Total key length in bytes is 20 (avg len 4.00) Biggest string found 'foo1' has 25 bytes 5 strings with 35 bytes (100.00% of keys, avg size 7.00) 0 lists with 0 items (00.00% of keys, avg size 0.00) 0 sets with 0 members (00.00% of keys, avg size 0.00) 0 hashs with 0 fields (00.00% of keys, avg size 0.00) 0 zsets with 0 members (00.00% of keys, avg size 0.00)
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --scan | more -8 name age aaa myset myhash address myzset rlist
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --scan --pattern 'a*' age aaa address
根据键的名称,通过使用wc命令可以使管道输出针对特定种类对象的计数:
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --scan --pattern 'a*' age aaa address [root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --scan --pattern 'a*' | wc -l 3
//非系统级通用通道 [root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 psubscribe '*' Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "*" 3) (integer) 1 //单一通道 [root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 psubscribe mychannel Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "*" 3) (integer) 1
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 psubscribe * Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "datas" 3) (integer) 1 1) "psubscribe" 2) "logs" 3) (integer) 2 1) "psubscribe" 2) "redis-benchmark" 3) (integer) 3 1) "psubscribe" 2) "redis-cli" 3) (integer) 4 1) "psubscribe" 2) "redis.conf" 3) (integer) 5 1) "psubscribe" 2) "redis-sentinel" 3) (integer) 6 1) "psubscribe" 2) "redis-server" 3) (integer) 7 1) "psubscribe" 2) "redis-trib.rb" 3) (integer) 8 1) "psubscribe" 2) "sentinel.conf" 3) (integer) 9
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 publish mychannel mymessage (integer) 1 显示内容: 1) "pmessage" 2) "*" 3) "mychannel" 4) "mymessage"
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 monitor OK 1520321617.017015 [0 192.168.127.130:34984] "publish" "mych" "mymessage" 1520321654.339150 [0 192.168.127.130:34986] "set" "sex" "1"
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --latency min: 0, max: 3, avg: 0.28 (1051 samples)
[root@linux ~]# redis-cli -h 192.168.127.130 -p 6379 --latency-history min: 0, max: 6, avg: 0.35 (1230 samples) -- 15.00 seconds range min: 0, max: 3, avg: 0.34 (1277 samples) -- 15.01 seconds range min: 0, max: 6, avg: 0.30 (1272 samples) -- 15.00 seconds range min: 0, max: 2, avg: 0.33 (1289 samples) -- 15.00 seconds range min: 0, max: 4, avg: 0.36 (1312 samples) -- 15.01 seconds range min: 0, max: 1, avg: 0.24 (67 samples)^C
[root@linux ~]# redis-cli -h 192.168.127.130 -p 6379 --latency-dist --------------------------------------------- . - * # .01 .125 .25 .5 milliseconds 1,2,3,...,9 from 1 to 9 milliseconds A,B,C,D,E 10,20,30,40,50 milliseconds F,G,H,I,J .1,.2,.3,.4,.5 seconds K,L,M,N,O,P,Q,? 1,2,4,8,16,30,60,>60 seconds From 0 to 100%: --------------------------------------------- .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ? .-*#123456789ABCDEFGHIJKLMNOPQ?
[root@linux ~]# redis-cli -h 192.168.127.130 -p 6379 --intrinsic-latency 5 Max latency so far: 1 microseconds. Max latency so far: 88 microseconds. Max latency so far: 120 microseconds. Max latency so far: 950 microseconds. Max latency so far: 1192 microseconds. Max latency so far: 1830 microseconds. Max latency so far: 2107 microseconds. 32993317 total runs (avg latency: 0.1515 microseconds / 151.55 nanoseconds per run). Worst run took 13903x longer than the average latency.
[root@linux ~]# redis-cli -h 192.168.127.130 -p 6379 --rdb /tmp/dump.rdb SYNC sent to master, writing 534 bytes to '/tmp/dump.rdb' Transfer finished with success.
[root@linux ~]# redis-cli -h 192.168.127.130 -p 6379 --rdb /tmp/dump.rdb SYNC sent to master, writing 534 bytes to '/tmp/dump.rdb' Transfer finished with success. [root@linux ~]# echo $? 0
10.8、从模式 CLI的从属模式是一种高级功能,可用于Redis开发人员和调试操作。它允许检查主站发送到复制流中的从站以便将写入传播到其副本。选项名称简单--slave。示例代码如下:
[root@linux ~]# redis-cli -h 192.168.127.129 -p 6379 --slave SYNC with master, discarding 535 bytes of bulk transfer... SYNC done. Logging commands from master.
[root@linux redis]# redis-cli -h 192.168.127.130 -p 6379 --lru-test 10000000 156000 Gets/sec | Hits: 4552 (2.92%) | Misses: 151448 (97.08%) 153750 Gets/sec | Hits: 12906 (8.39%) | Misses: 140844 (91.61%) 159250 Gets/sec | Hits: 21811 (13.70%) | Misses: 137439 (86.30%) 151000 Gets/sec | Hits: 27615 (18.29%) | Misses: 123385 (81.71%) 145000 Gets/sec | Hits: 32791 (22.61%) | Misses: 112209 (77.39%) 157750 Gets/sec | Hits: 42178 (26.74%) | Misses: 115572 (73.26%) 154500 Gets/sec | Hits: 47418 (30.69%) | Misses: 107082 (69.31%) 151250 Gets/sec | Hits: 51636 (34.14%) | Misses: 99614 (65.86%)
120750 Gets/sec | Hits: 48774 (40.39%) | Misses: 71976 (59.61%) 122500 Gets/sec | Hits: 49052 (40.04%) | Misses: 73448 (59.96%) 127000 Gets/sec | Hits: 50870 (40.06%) | Misses: 76130 (59.94%) 124250 Gets/sec | Hits: 50147 (40.36%) | Misses: 74103 (59.64%)
140000 Gets/sec | Hits: 135376 (96.70%) | Misses: 4624 (3.30%) 141250 Gets/sec | Hits: 136523 (96.65%) | Misses: 4727 (3.35%) 140250 Gets/sec | Hits: 135457 (96.58%) | Misses: 4793 (3.42%) 140500 Gets/sec | Hits: 135947 (96.76%) | Misses: 4553 (3.24%)
因此我们知道在500MB的情况下,我们的键数量支持足够多(1000万)和分布也很合理(80-20方式)。三、总结 好了,今天就写到这里了,终于把redis-cli的使用细节写完了,翻译起来也挺耗时间的,有的时候可能翻译的不准确,也请大家指出。继续努力,不能松懈。如果想看原文,地址如下:https://redis.io/topics/rediscli。