Redis现在在业务中应用已经很广泛了,但是如何监控redis,实时的观察redis的性能,却很少的提及,现在常见的监控方案基本上都是使用redis自带的info命令和monitor命令获取相关信息,然后提取出来显示。
测试环境:
redis版本:2.4.17
IP:10.20.111.188
1 redis-faina
一个使用redis自带命令monitor的输出结果做分析的python脚本,在命令行下使用,可以做实时分析使用。
官网:https://github.com/Instagram/redis-faina
下载试用:
1cd /opt/test 2git clone https://github.com/Instagram/redis-faina.git 3cd redis-faina/ 4redis-cli -p 6379 MONITOR | head -n 100 | ./redis-faina.py --redis-version=2.4
测试结果如下:

可以看到一些实时的数据,并且有一定的统计数据,可以作为一个命令行工具使用。推荐使用,不过redis版本要大于2.4。
2 redis-live
一个用来监控redis实例,分析查询语句并且有web界面的监控工具,python编写。
官网:https://github.com/nkrode/RedisLive
下载试用:
运行环境依赖包安装:http://www.nkrode.com/article/real-time-dashboard-for-redis
redis-live安装:
1cd /root 2git clone https://github.com/nkrode/RedisLive.git 3cd RedisLive/src 4###修改redis-live.conf文件 5{ 6 "RedisServers": 7 [ 8 { 9 "server": "10.20.111.188", 10 "port" : 6379 11 } 12 13 ], 14 15 "DataStoreType" : "redis", 16 17 "RedisStatsServer": 18 { 19 "server" : "10.20.111.188", 20 "port" : 6380 21 }, 22 23 "SqliteStatsStore" : 24 { 25 "path": "to your sql lite file" 26 } 27} 28###修改完毕 29###启动监控服务,每30秒监控一次 30./redis-monitor.py --duration=30 31###再次开启一个终端,进入/root/RedisLive/src目录,启动web服务 32./redis-live.py
在浏览器输入: http://10.20.111.188:8888/index.html 即可看到下图:

一个web界面,可以同时监控多个redis实例,做集中监控比较好。
3 redis-stat
一个用ruby写成的监控redis的程序,基于info命令获取信息,而不是通过monitor获取信息,性能应该比monitor要好。
官网:https://github.com/junegunn/redis-stat
运行环境安装:
1apt-get install ruby 2apt-get install rubygems
redis-stat安装:
1cd /root 2git clone https://github.com/junegunn/redis-stat.git 3cd /root/redis-stat/bin 4###./redis-stat --help 可以看到使用帮助 5./redis-stat 1
下面看看redis-stat的具体用法
1usage: redis-stat [HOST[:PORT] ...] [INTERVAL [COUNT]] 2 3 -a, --auth=PASSWORD Password 4 -v, --verbose Show more info 5 --style=STYLE Output style: unicode|ascii 6 --no-color Suppress ANSI color codes 7 --csv=OUTPUT_CSV_FILE_PATH Save the result in CSV format 8 9 --server[=PORT] Launch redis-stat web server (default port: 63790) 10 --daemon Daemonize redis-stat. Must be used with --server option. 11 12 --version Show version 13 --help Show this message
redis-stat命令行模式:
1redis-stat 2redis-stat 1 3redis-stat 1 10 4redis-stat --verbose 5redis-stat localhost:6380 1 10 6redis-stat localhost localhost:6380 localhost:6381 5 7redis-stat localhost localhost:6380 1 10 --csv=/tmp/output.csv --verbose
redis-stat web模式:
1redis-stat --server 2redis-stat --verbose --server=8080 5 3redis-stat --server --daemon
效果如下:

运行web模式
1cd /root/redis-stat/bin 2./redis-stat --server=8080 5 --daemon
在浏览器输入: http://10.20.111.188:8080/ 结果如下:

不错的工具,既有命令行又有web界面,可以放到后台运行,数据比redis-live感觉直观 ,ruby开发的,唯一的缺点是如果同时监控多个redis实例,不能单独显示每一个实例的数据信息,貌似是总和。
4 redis-monitor
一个国人用java写的,官网的是在win下编译的,看着不错,不过我在linux下没调试起来...
官网:https://github.com/litiebiao2012/redis-monitor
个人感觉,做集中监控可以使用redis-live,在命令行使用可以使用redis-stat,也可以根据自己的情况自行编写,总之就是根据info和monitor命令获取并展示信息。