redis-cli中那些或许我们还不知道的一些实用小功能
玩过redis的朋友都知道,redis中有一个叫做redis-cli的小工具,我们可以利用它在test和develop环境下进行高效的模拟测试,然而在现实环境中, 我们只知道直接键入redis-cli启动命令的交互式,而这个对redis-cli来说绝对是九牛一毛,下面我逐一给大家演示下。
? ? ?通常我们都是使用REPL模式,就是连接上端口之后,发一条request再等待response这样一个loop的形式,如下所示: [root@localhost Desktop]# redis-cli -h .
.:> .:> password .:>
其实我还可以直接在命令行中使用redis-cli再配合各种附加参数,效果和上面图示是一模一样的,比如下面这样: [root@localhost Desktop]# redis-cli -h . -cli -h . password
看到没有,这样也是可以的,是不是有点意思哈~~~
? ? ?乍一看还是挺酷的,就是可以把本地文件中的一组redis命令直接导入到redis-cli中执行,这样也就免去了一行一行的去键入了,对不对,工作量可以 大大的减轻,比如下面这样:
然后我们用 < 命令导入就可以了,这里126的ip是本地局域网内的一台虚拟机,是不是有点像pipeline管道操作,牛逼吧~~~ 如下所示: [root@localhost Desktop]# redis-cli -h . < /usr/
对指定的redis命令进行重复调用,乍一看也没什么用处,但是如果你调用info命令会是咋样的呢??? 你肯定会想到,我操,监控对不对???好吧, 猜对了,命令格式如下: redis-cli -r
其中-r 是repeat的次数,-i是delay的sencond的秒数,那接下来我演示一下啊,调用info命令10次,每次延迟1s,如下所示: [root@localhost Desktop]# redis-cli -h . -r -i ..-./etc/redis/redis-/etc/redis/Clients
connected_clients: <span style="color: #800080;">7<span style="color: #000000;">client_longest_output_list:<span style="color: #800080;">0<span style="color: #000000;"> client_biggest_input_buf:<span style="color: #800080;">0<span style="color: #000000;"> blocked_clients:<span style="color: #800080;">0<span style="color: #000000;"> Memoryused_memory: <span style="color: #800080;">1295512<span style="color: #ff0000;">used_memory_human:1.24M<span style="color: #000000;"> used_memory_rss:<span style="color: #800080;">10395648<span style="color: #000000;"> used_memory_rss_human:<span style="color: #800080;">9.91M<span style="color: #000000;"> used_memory_peak:<span style="color: #800080;">35199336<span style="color: #000000;"> used_memory_peak_human:<span style="color: #800080;">33.57M<span style="color: #000000;"> total_system_memory:<span style="color: #800080;">2099109888<span style="color: #000000;"> total_system_memory_human:<span style="color: #800080;">1<span style="color: #000000;">.95G used_memory_lua:<span style="color: #800080;">37888<span style="color: #000000;"> used_memory_lua_human:<span style="color: #800080;">37<span style="color: #000000;">.00K maxmemory:<span style="color: #800080;">0<span style="color: #000000;"> maxmemory_human:0B maxmemory_policy:noeviction mem_fragmentation_ratio:<span style="color: #800080;">8.02<span style="color: #000000;"> mem_allocator:jemalloc-<span style="color: #800080;">4.0.<span style="color: #800080;">3<span style="color: #000000;"> Persistenceloading: <span style="color: #800080;">0<span style="color: #000000;">rdb_changes_since_last_save:<span style="color: #800080;">0<span style="color: #000000;"> rdb_bgsave_in_progress:<span style="color: #800080;">0<span style="color: #000000;"> rdb_last_save_time:<span style="color: #800080;">1481443658<span style="color: #000000;"> rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:<span style="color: #800080;">0<span style="color: #000000;"> rdb_current_bgsave_time_sec:-<span style="color: #800080;">1<span style="color: #000000;"> aof_enabled:<span style="color: #800080;">0<span style="color: #000000;"> aof_rewrite_in_progress:<span style="color: #800080;">0<span style="color: #000000;"> aof_rewrite_scheduled:<span style="color: #800080;">0<span style="color: #000000;"> aof_last_rewrite_time_sec:-<span style="color: #800080;">1<span style="color: #000000;"> aof_current_rewrite_time_sec:-<span style="color: #800080;">1<span style="color: #000000;"> aof_last_bgrewrite_status:ok aof_last_write_status:ok<span style="color: #000000;"> ... 可以看到,命令一下子就刷出来了很多,有点眼花缭乱,一般来说我只关注的是used_memory_human字段,也就仅仅需要知道当然redis占用了多少内存 就完事了,所以这里我需要grep一下: [root@localhost Desktop]# redis-cli -h . -r -i INFO |
used_memory_human:
可以清楚的看到,当前memory_human占用1.24M对吧。。。是不是有一种监控的效果呢?
? ?其实上面的这个监控还仅仅算是一个极简的版本,可能不能满足有些朋友的需求,比如你就看不到当前的redis中有多少的keys,有多少的clients,有多少 被blocked,有多少requests等等信息,如果这些都有了,是不是有点像mongodb中的mongostats呢?哈哈,下面我就迫不及待的给大家来演示一下吧, 非常的简单。。。 [root@localhost Desktop]# redis-cli -h . --------- data ------ --------------------- load -------------------- - child - (+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
(+)
看到没有,是不是非常的牛逼,一目了然。 好了,更多的好功能,等待大家去挖掘吧,希望本篇对大家有帮助~~~ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |