三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Redis 过期删除策略和内存淘汰策略?

Redis 过期删除策略和内存淘汰策略?

Redis 过期删除策略和内存淘汰策略

这是 Redis 核心高频面试题,两者完全不同,一定要区分开:

  • 过期删除策略:针对设置了过期时间的 key,到期后怎么删除
  • 内存淘汰策略:针对内存使用满了的场景,新数据写入时,怎么删除旧数据腾出空间

下面用最清晰、好记的方式讲清楚👇


一、Redis 过期删除策略

Redis 给 key 设置EXPIRE后,到期不会立刻统一删除,而是用3 种策略组合实现高效清理。

1. 三种过期删除策略

  1. 定时删除

    • 原理:给每个过期 key 创建定时器,到期立即删除
    • 优点:内存释放及时
    • 缺点:大量 key 过期时,CPU 压力大,影响 Redis 性能
    • Redis不单独使用
  2. 惰性删除

    • 原理:key 到期不主动删,等到查询时才检查是否过期,过期就删除并返回空
    • 优点:对 CPU 最友好
    • 缺点:大量过期 key 永远不访问,会一直占用内存(内存浪费)
    • Redis使用
  3. 定期删除

    • 原理:每隔一段时间,随机抽取一批 key 检查,
← 返回列表