CS-Notes 学习笔记
面试常问Java 后端 · Redis 与缓存

过期的键怎样删除?内存满了有哪些淘汰策略?

先自己想一想,再看参考要点

参考要点

  • 惰性删除:访问键时检查,过期就删除并当作不存在
  • 定期删除:每秒 10 次,每次抽 20 个设置了过期时间的键,过期的超过 10% 就继续下一批,每次最多占 25% 的 CPU
  • 内存达到 maxmemory 后按淘汰策略处理,有 volatile 和 allkeys 两个范围的 lru、lfu、random,以及 volatile-ttl 和默认的 noeviction(SET 这类可能增加内存的命令返回 OOM 错误,GET、DEL 照常执行),Redis 4.0 到 7.x 共 8 种,8.6 又增加了按最近修改时间淘汰的 allkeys-lrm、volatile-lrm
  • 只作缓存时常用 allkeys-lru
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。