Redis知识体系架构(二)

本文详细介绍了Redis的过期数据删除策略,包括惰性删除和定期删除,以及内存淘汰机制,如LRU和LFU。还讨论了Redis的持久化机制,包括RDB和AOF,以及如何应对缓存击穿和雪崩问题。此外,提到了Redis的分布式锁实现RedLock和分布式集群的应用,如哨兵模式。
摘要由CSDN通过智能技术生成

四、过期数据的删除策略

1、设置过期时间

  • 设置过期时间的原因:我们的内存是有限的,如果一直存放的,尽管它能存到磁盘上,但是这些都是又边界的,如果一直存放,那么最终必会导致系统宕机(OOM)
  • 过期时间有助于缓解内存的消耗
  • 业务场景:短信验证码(比如说一分钟内有效),用户的token
  • Redis 通过一个叫做过期字典(可以看作是hash表)来保存数据过期的时间

2、策略

上面设置了过期时间,那么如何对这些过期的数据进行删除呢?

  • 惰性删除
    • 在根据key进行读数据的时候进行检查,看看是否过期;对CPU友好,但是如果有大量的该删除数据未删除对内存是很崩溃的。
  • 定期删除
    • 每隔一段时间抽取一批 key 执行删除过期 key 的操作。对内存很友好,但是过长频率的操作可能会对CPU带来很大的影响,所以Redis通过限制删除操作的执行时长和频率来减少对CPU消耗的影响。
  • Redis 采用的是 定期删除+惰性删除

五、⭐Redis 内存淘汰机制

我们通过定期删除和惰性删除,还有可能会漏掉大量过期的key未删除的情况,导致内存堆积大量无用的key。所以我们引入了淘汰机制来解决这个问题。

Redis 提供 6 种数据淘汰策略:

  • volatile-lru(least recently used):从已设置过期时间的数据集里面挑选出最近最少使用的数据进行淘汰
  • volatile-ttl:从已经设置过期时间的数据集里面挑选出将要过期的数据淘汰</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值