redis的缓存过期策略与内存淘汰机制

本文探讨了Redis缓存中的常见问题——缓存穿透和缓存雪崩,以及解决方案。接着,详细介绍了Redis的三种过期策略:定时、惰性和定期过期,分析了它们的优缺点。此外,还讲解了Redis的内存淘汰策略,包括noeviction、allkeys-lru、allkeys-random、volatile-lru、volatile-random和volatile-ttl六种策略,帮助理解如何在内存受限时处理数据。
摘要由CSDN通过智能技术生成

提起redis,毫无疑问,缓存是Redis当今最为人熟知的使用场景。再提升服务器性能方面非常有效。但是,redis不是万金油,它也有自身的弊端,我们在使用redis缓存功能是也会出现一些问题,比如说:
缓存穿透:也就是说查询数据库中一定没用的数据,redis当中肯定也没有,这样的话,每次请求都会发送到数据库中,增加数据库的负担。
解决方案:

  • 将每次查不出来的数据当成null存入redis中,这样查询之后直接返回null,但是这种方法不推荐使用
  • 布隆过滤器,这里不多做介绍,上篇已经解释过,有兴趣可以去看看

缓存雪崩:缓存在某一时间段大面积失效
解决方案:设置缓存过期时间,缓存时间相同的,失效的时间也是相同的;缓存多个key时,把时间错开。

redis的缓存过期策略
redis的内存回收机制主要围绕两个方面:

1.Redis过期策略:删除过期时间的key值
2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据

redis的过期策略主要有三种:

  1. 定时过期
    每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。
  2. 惰性过期
    只有当访问一个key时,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值