上一篇我们深度拆解了Redis与MySQL双写一致性方案,彻底解决了缓存脏数据问题,让缓存层与持久层数据同步更稳健。但一套稳定的Redis架构,不仅要做好设计与一致性保障,更离不开全天候监控——内存暴涨、连接打满、延迟飙升、慢查询增多等问题,都需要靠监控快速定位、提前预警。
很多运维和开发同学面对Redis监控无从下手,要么只用原生info命令效率低下,要么搭建复杂监控栈成本太高。本篇聚焦两款生产必备工具:轻量级实时监控Redis-Stat、生产级可视化监控Redis-Exporter,从安装、配置、核心指标解读到场景选型,手把手教你搭建Redis监控体系,做到故障早发现、问题快定位。
核心定位:Redis-Stat适合临时排查、实时观测;Redis-Exporter适合长期监控、告警联动、集群可视化,二者搭配覆盖全场景监控需求。
一、为什么Redis监控必不可少?
Redis是内存型中间件,一旦出现异常极易引发雪崩、宕机,进而拖垮整个业务。日常运维必须紧盯以下核心指标,而原生命令操作繁琐、无可视化,必须借助专业工具:
- 内存指标:内存使用率、内存碎片、淘汰次数,防止OOM宕机
- 性能指标:QPS、命中率、响应延迟,判断性能瓶颈
- 连接指标:客户端连接数、阻塞连接,避免连接耗尽
- 状态指标:主从同步状态、持久化状态、慢查询数量
二、轻量级实时排查:Redis-Stat 工具详解
Redis-Stat是一款基于Ruby开发的轻量级命令行监控工具,无需依赖复杂组件,开箱即用,适合临时排查、实时观测Redis运行状态,支持单机与集群多节点同时监控。
1. 工具安装(Linux环境)
# 安装Ruby依赖
yum install -y ruby ruby-devel gcc make
# 安装Redis-Stat
gem install redis-stat
2. 核心使用命令
# 监控本地Redis(默认端口6379,1秒刷新一次)
redis-stat
# 监控远程Redis,指定IP、端口、密码
redis-stat 192.168.1.100:6379 --auth=yourpassword
# 监控多节点,指定刷新间隔(2秒)
redis-stat 192.168.1.100:6379 192.168.1.101:6379 --delay=2
# 启动Web可视化界面(浏览器访问IP:63790)
redis-stat --verbose --server=63790
3. 核心监控指标解读
- usys:CPU使用率
- mem:内存使用量
- client:客户端连接数
- hit/miss:缓存命中/缺失次数
- keys/exp:总Key数/过期Key数
- rdb/aof:持久化运行状态
4. 适用场景
- 临时快速排查Redis性能问题
- 测试环境实时观测指标变化
- 无复杂监控栈的轻量级业务
Redis-Stat无数据持久化、无告警功能,仅适合临时排查,生产长期监控建议使用Redis-Exporter。
三、生产级可视化监控:Redis-Exporter 详解
Redis-Exporter是专为Prometheus设计的Redis指标采集组件,配合Grafana实现可视化大盘、历史数据查询、阈值告警,是生产环境Redis监控的标准方案,支持单机、主从、哨兵、Cluster全架构。
1. 技术栈组合
Redis-Exporter + Prometheus + Grafana:采集指标→存储时序数据→可视化展示+告警
2. Redis-Exporter 安装与配置
二进制安装(推荐)
# 下载对应版本安装包
wget https://github.com/oliver006/redis_exporter/releases/download/v1.52.0/redis_exporter-v1.52.0.linux-amd64.tar.gz
# 解压
tar -zxvf redis_exporter-v1.52.0.linux-amd64.tar.gz
cd redis_exporter-v1.52.0.linux-amd64
启动Exporter(指定Redis地址与密码)
# 单机Redis启动
./redis_exporter -redis.addr 127.0.0.1:6379 -redis.password yourpassword
# 集群/多节点启动
./redis_exporter -redis.addr 192.168.1.100:6379,192.168.1.101:6379 -redis.password yourpassword
启动成功后,访问 http://服务器IP:9121/metrics 可查看采集的Redis指标。
3. Prometheus 配置对接
# 修改prometheus.yml,新增Redis监控任务
scrape_configs:
- job_name: 'redis'
scrape_interval: 15s
static_configs:
- targets: ['192.168.1.100:9121'] # Exporter地址
重启Prometheus,在Prometheus UI可查询到redis相关指标。
4. Grafana 可视化大盘配置
- 登录Grafana,添加Prometheus数据源
- 导入Redis监控模板(推荐ID:763、11833)
- 一键生成可视化大盘,展示内存、连接、命中率、延迟等全指标
5. 核心优势与告警配置
- 支持历史数据存储,可回溯排查问题
- 支持阈值告警(内存超80%、连接数过高、命中率过低)
- 适配集群架构,支持多节点统一监控
- 指标全面,覆盖慢查询、主从同步、淘汰策略等核心状态
四、两款工具对比与场景选型
| 维度 | Redis-Stat | Redis-Exporter |
|---|---|---|
| 部署复杂度 | 极低,一键安装启动 | 较高,需配合Prometheus+Grafana |
| 数据持久化 | 不支持,实时展示 | 支持,时序存储可回溯 |
| 可视化 | 命令行/简易Web | Grafana专业大盘 |
| 告警功能 | 无 | 支持阈值告警、联动通知 |
| 适用场景 | 临时排查、测试环境、轻量监控 | 生产长期监控、集群监控、告警运维 |
最佳实践:日常运维用Redis-Exporter做常态化监控,突发问题时用Redis-Stat快速实时排查,二者互补,监控无死角。
五、Redis监控核心告警阈值推荐
- 内存使用率 > 80%:告警,及时清理BigKey或扩容
- 缓存命中率 < 90%:告警,优化缓存策略
- 客户端连接数 > 最大连接数80%:告警,排查连接泄露
- 主从同步断开:立即告警,防止数据不一致
- 慢查询数量持续增加:告警,优化命令与Key设计
总结与下篇预告
监控是Redis稳定运行的最后一道防线,Redis-Stat轻巧快捷,适合应急排查;Redis-Exporter专业全面,适合生产常态化监控。掌握这两款工具,就能快速定位内存、性能、连接等各类问题,让Redis运维更省心。