监控Redis在CentOS上的运行状态和性能,需结合自带工具(快速排查)、第三方工具(长期可视化)及操作系统工具(系统级资源监控),以下是具体方案:
Redis自带的redis-cli工具无需额外安装,适合快速获取实例状态或临时排查问题:
INFO命令:获取Redis服务器的详细状态,涵盖内存、客户端、持久化、性能等核心指标(如used_memory已用内存、connected_clients连接数、rdb_last_save_time最后一次RDB持久化时间)。可通过redis-cli info查看全部信息,或指定模块(如redis-cli info memory仅看内存指标)。MONITOR命令:实时显示Redis接收到的所有命令(包括参数),适合调试(如跟踪慢命令),但生产环境慎用(高流量下会产生大量输出)。SLOWLOG命令:查看执行时间超过阈值的慢命令(帮助定位性能瓶颈)。需先配置slowlog-log-slower-than(单位:微秒,默认10毫秒)和slowlog-max-len(日志长度,默认128条),再通过redis-cli slowlog get查看日志。redis-benchmark工具:模拟多客户端并发请求,测试Redis性能(如QPS、延迟)。常用参数:-h(主机)、-p(端口)、-c(并发数)、-n(请求数)、-q(仅显示QPS)。例如:redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 10000 -q。RedisStat(轻量级实时监控)
基于Ruby开发,通过INFO命令采集指标,实时显示内存、CPU、连接数等指标,适合快速部署。
sudo yum install epel-release && sudo yum install redis-stat。redis-stat(默认监控本地Redis),或指定实例(redis-stat -h <host> -p <port>)。Prometheus+Grafana(专业可视化)
Prometheus负责采集指标,Grafana负责可视化,适合大规模集群监控。
redis_exporter(Prometheus采集Redis指标的中间件):下载二进制文件并配置(指定Redis地址,如addr: "localhost:6379"),运行redis_exporter。prometheus.yml,添加Redis Exporter的job(scrape_configs中指定targets: ['localhost:9121'])。http://localhost:9090),导入Redis监控面板(如ID:763,官方预置模板)。RedisInsight(官方图形化管理工具)
Redis官方提供的免费工具,支持实时监控、键空间浏览、慢查询分析、内存优化建议等功能,适合开发者和运维人员。
.tar.gz格式),解压后运行./redisinsight。8001),添加Redis实例(输入主机、端口、密码)即可监控。AnotherRedisDesktopManager(轻量级桌面工具)
开源免费的跨平台工具,支持内存分析、慢查询查看、命令行执行等功能,界面简洁。
.AppImage格式),赋予执行权限后运行。通过CentOS自带的工具监控Redis进程占用的系统资源,辅助定位性能瓶颈:
top/htop:实时查看系统进程的资源占用(top按M排序内存,P排序CPU;htop界面更友好,需sudo yum install htop安装)。vmstat:查看系统虚拟内存、进程、CPU等活动(如vmstat 1 5表示每秒采集1次,共5次)。netstat:查看Redis的网络连接状态(如netstat -tulnp | grep 6379,显示Redis监听的端口和连接数)。dmesg:查看内核日志(如内存不足导致的OOM事件,dmesg | grep -i oom)。通过脚本定期执行INFO命令,将结果写入日志或发送告警(如邮件、钉钉)。例如,使用bash脚本每分钟记录内存使用情况:
#!/bin/bash
REDIS_CLI="/usr/bin/redis-cli"
LOG_FILE="/var/log/redis/memory.log"
$REDIS_CLI info memory | grep used_memory_human >> $LOG_FILE
添加到cron(crontab -e):* * * * * /path/to/script.sh。
以上方法覆盖了从基础排查到专业监控的需求,可根据实际情况选择组合使用(如开发环境用RedisInsight,生产环境用Prometheus+Grafana+redis_exporter)。