redis-cli中那些或许我们还不知道的一些实用小功能
玩过redis
的朋友都知道,redis
中有一个叫做redis-cli
的小工具,我们可以利用它在test
和develop
环境下进行高效的模拟测试,然而在现实环境中,我们只知道直接键入redis-cli
启动命令的交互式,而这个对redis-cli
来说绝对是九牛一毛,下面我逐一给大家演示下。
一:非REPL (Read Eval Print Loop) 模式
通常我们都是使用REPL模式,就是连接上端口之后,发一条request
再等待response
这样一个loop
的形式,如下所示:
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 |
其实我还可以直接在命令行中使用redis-cli
再配合各种附加参数,效果和上面图示是一模一样的,比如下面这样:
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 set username jack |
看到没有,这样也是可以的,是不是有点意思哈~~~
二:从本地文件中执行命令导入
乍一看还是挺酷的,就是可以把本地文件中的一组redis
命令直接导入到redis-cli
中执行,这样也就免去了一行一行的去键入了,对不对,工作量可以大大的减轻,比如下面这样:
首先找一个目录,这里就选择
/usr/
, 下面新建一个txt文件
,命令还是非常的简单,执行两个set
操作。
然后我们用 < 命令
导入就可以了,这里126
的ip是本地局域网内的一台虚拟机,是不是有点像pipeline
管道操作,牛逼吧~~~ 如下所示:
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 < /usr/1.txt |
三:对指定redis
命令重复调用
对指定的redis
命令进行重复调用,乍一看也没什么用处,但是如果你调用info
命令会是咋样的呢??? 你肯定会想到,我操,监控对不对???好吧,猜对了,命令格式如下:
1 | redis-cli -r <count> and -i <delay> command |
其中-r
是repeat
的次数,-i
是delay
的sencond
的秒数,那接下来我演示一下啊,调用info
命令10次,每次延迟1s
,如下所示:
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 -r 10 -i 1 INFO |
可以看到,命令一下子就刷出来了很多,有点眼花缭乱,一般来说我只关注的是used_memory_human
字段,也就仅仅需要知道当然redis占用了多少内存就完事了,所以这里我需要grep
一下:
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 -r 10 -i 1 INFO | grep used_memory_human |
可以清楚的看到,当前memory_human
占用1.24M
对吧。。。是不是有一种监控的效果呢?
四:--stat
完整版监控
其实上面的这个监控还仅仅算是一个极简的版本,可能不能满足有些朋友的需求,比如你就看不到当前的redis
中有多少的keys
,有多少的clients
,有多少被blocked
,有多少requests
等等信息,如果这些都有了,是不是有点像mongodb
中的mongostats
呢?哈哈,下面我就迫不及待的给大家来演示一下吧,非常的简单。。。
1 | [root@localhost Desktop]# redis-cli -h 192.168.1.216 --stat |
看到没有,是不是非常的牛逼,一目了然。
转http://www.cnblogs.com/huangxincheng/p/6159890.html?utm_source=tuicool&utm_medium=referral