上一篇我们深度拆解了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 可视化大盘配置

  1. 登录Grafana,添加Prometheus数据源
  2. 导入Redis监控模板(推荐ID:76311833
  3. 一键生成可视化大盘,展示内存、连接、命中率、延迟等全指标

5. 核心优势与告警配置

  • 支持历史数据存储,可回溯排查问题
  • 支持阈值告警(内存超80%、连接数过高、命中率过低)
  • 适配集群架构,支持多节点统一监控
  • 指标全面,覆盖慢查询、主从同步、淘汰策略等核心状态

四、两款工具对比与场景选型

维度Redis-StatRedis-Exporter
部署复杂度极低,一键安装启动较高,需配合Prometheus+Grafana
数据持久化不支持,实时展示支持,时序存储可回溯
可视化命令行/简易WebGrafana专业大盘
告警功能支持阈值告警、联动通知
适用场景临时排查、测试环境、轻量监控生产长期监控、集群监控、告警运维

最佳实践:日常运维用Redis-Exporter做常态化监控,突发问题时用Redis-Stat快速实时排查,二者互补,监控无死角。


五、Redis监控核心告警阈值推荐

  • 内存使用率 > 80%:告警,及时清理BigKey或扩容
  • 缓存命中率 < 90%:告警,优化缓存策略
  • 客户端连接数 > 最大连接数80%:告警,排查连接泄露
  • 主从同步断开:立即告警,防止数据不一致
  • 慢查询数量持续增加:告警,优化命令与Key设计

总结与下篇预告

监控是Redis稳定运行的最后一道防线,Redis-Stat轻巧快捷,适合应急排查;Redis-Exporter专业全面,适合生产常态化监控。掌握这两款工具,就能快速定位内存、性能、连接等各类问题,让Redis运维更省心。

发表回复