redis为提供了monitor命令来跟踪操作,如同sql server 的trace一样,可以看到正在执行的redis操作。
用法很简单:在redis-cli命令提示符下输入monitor即可将内容打印出来,一般使用定向语句将内容输出来以便分析,如下:
./redis-cli monitor > monitorlog
然后查看monitorlog文件即可知道目前的操作,也可以通过以下命令来大概命令的执行情况 ,如:
cat monitorlog |awk '{print $2}'|sort |uniq -c|sort -rn
即可看到以下执行结果:
4964 "HGET"
171 "HSET"
168 "GET"
52 "HEXISTS"
35 "ZRANGE"
28 "EXPIRE"
20 "SETEX"
19 "HSETNX"
8 "LPUSH"
7 "EXISTS"
6 "SET"
6 "HGETALL"
6 "DEL"
5 "ZCARD"
5 "INFO"
3 "ZREVRANGE"
2 "INCRBY"
1 "monitor"
通过以上的跟踪与查询可以做为redis运行时故障的判断。