首页/数据/Redis 进阶速查/evicted_keys:淘汰量观测
内存与管理99 条

evicted_keys:淘汰量观测

evicted_keys 统计被淘汰键的累计数量,是判断内存压力与淘汰强度的直观指标;短时间飙升说明容量已跟不上写入。

Redis 进阶速查数据更新于 2026-10-13

淘汰量的观测口径

evicted_keys 是 INFO stats 里的累计计数,记录因为内存上限被淘汰掉的键数量。它是最直观的内存压力指标之一:总量只说明历史,短时间内的增量速度才说明当前是否已经跟不上写入。

基本信息

位置INFO stats 的 evicted_keys
含义累计被淘汰的键数量
解读方式看增量速率,不看绝对值
配套指标命中率与内存水位

典型使用场景

  • 内存告警时判断是否已经在淘汰数据
  • 评估扩容效果:扩容后淘汰速率是否回落
  • 排查缓存命中率下降是否由淘汰引起
  • 容量规划时给出「需要多少余量」的依据
  • 验证淘汰策略变更后的实际影响

差分采样

差分采样
# 单点数值看不出趋势,取两次样本做差值才是速率
redis-cli INFO stats | grep evicted_keys
sleep 60
redis-cli INFO stats | grep evicted_keys
# 淘汰与命中率一起看:淘汰上升且命中率下降才是业务受损
redis-cli INFO stats | grep -E 'keyspace_hits|keyspace_misses'
# 确认淘汰策略与上限,理解淘汰为什么会发生
redis-cli CONFIG GET maxmemory-policy maxmemory

指标组合读法

组合含义结论
淘汰上升 + 命中率下降缓存正在失效且业务受影响需要扩容或治理数据
淘汰上升 + 命中率稳定淘汰的是确实冷的数据属于正常回收
淘汰为 0 + 内存贴顶尚未开始淘汰但已接近上限提前规划扩容
expired_keys 上升到期回收在起作用与容量淘汰区分开看
used_memory 阶梯上升写入量在持续增长回到业务侧看写入来源
采样间隔要与业务节奏匹配:大促或批量任务期间一分钟的淘汰量可能抵得上平时一小时,采样太稀会漏掉尖峰。
淘汰计数只告诉你「丢了多少」,不告诉你「丢了哪些」;想知道具体影响面,要结合业务侧日志与键名规律一起分析。

易错点

  • 只看累计总量 → 忽略近期加速趋势,等故障发生才发现 → 按时间窗做差分,画出淘汰速率曲线
  • 淘汰上升就立刻扩容 → 若是冷热分布变化导致的,扩容只是把问题延后 → 先看命中率与键结构变化
  • 把到期回收与容量淘汰混为一谈 → 根因判断错误(一个是 TTL 到期,一个是容量不足)→ 分开看 expired_keys 与 evicted_keys
  • 监控只判断「有没有淘汰」→ 正常回收也会触发告警,产生噪音 → 用速率阈值替代有无判断

数据来源与参考

  • Redis 官方文档:INFO stats 字段说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌