redis缓存命中率需用keyspace_hits除以keyspace_hits+keyspace_misses计算增量比,内存监控重点看使用率(used_memory/maxmemory)、碎片率(used_memory_rss/used_memory)及rss异常,推荐redisinsight、prometheus+redis_exporter或zabbix方案,并结合多指标联动告警。

直接监控 Redis 缓存命中率和内存,核心是采集 INFO 命令返回的原始指标,并做合理计算与告警。不需要复杂改造,用现成工具就能落地。
命中率怎么算准?看这两个数就行
Redis 的命中率不是内置直接给出的,得自己算:用 keyspace_hits 除以 keyspace_hits + keyspace_misses。这两个值都在 INFO stats 里。
- 执行
redis-cli -h 127.0.0.1 -p 6379 info stats | grep -E "(keyspace_hits|keyspace_misses)"就能拿到实时数据 - 注意别用累计值直接比——要取时间窗口内的增量(比如 1 分钟前后差值),否则长期运行后数字太大,小幅波动看不出来
- 正常业务场景下,命中率建议设为 ≥90% 告警阈值;低于 85% 就该排查是否出现缓存穿透或热点失效
内存用多少?重点看这三个比例
光看 used_memory 不够,得结合配置和实际占用一起判断:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
-
内存使用率 =
used_memory / maxmemory(maxmemory从CONFIG GET maxmemory获取);超过 80% 就该预警 -
内存碎片率 =
used_memory_rss / used_memory(两个字段都在INFO memory中);>1.5 表示碎片严重,可能触发频繁 malloc/free,影响性能 -
RSS 超限但
used_memory很低?说明有内存泄漏或大 Key 持久占用,需用MEMORY USAGE或redis-cli --bigkeys定位
用什么工具省事又可靠?
不用从零写脚本,主流方案已经很成熟:
- RedisInsight:连上实例后 Dashboard 页面直接显示「Hit Rate」曲线和「Memory Usage」趋势,支持自定义刷新间隔,适合日常巡检
-
Prometheus + redis_exporter:自动暴露
redis_keyspace_hits_total、redis_memory_used_bytes等指标,配合 Grafana 可画出带同比/环比的命中率热力图和内存增长预测线 -
Zabbix 自定义 key:写个简单 shell 脚本调用
redis-cli info解析字段,再通过zabbix_sender上报,适合已有 Zabbix 体系的团队
告警不能只看单点数值
孤立的“命中率 72%”或“内存 79%”容易误报,要加上下文:
- 命中率下降同时
keyspace_misses每分钟新增超 500 次 → 可能是缓存穿透或批量删 Key - 内存使用率连续 5 分钟 >85%,且
evicted_keys在涨 → 淘汰已开始,DB 压力即将上升 - 碎片率 >1.8 且
mem_allocator是 jemalloc → 建议重启实例(前提是有主从切换能力)










