Redis 过期策略和内存淘汰机制

Redis作为缓存系统,采用定期删除和惰性删除策略处理数据过期,结合内存淘汰机制防止内存耗尽。定期删除每100ms随机检查部分key,惰性删除在获取key时检查是否过期。内存淘汰提供6种策略,确保在内存压力下删除部分key,维持系统稳定。在RDB和AOF持久化、主从复制过程中,过期key得到相应处理,保证数据一致性。
摘要由CSDN通过智能技术生成

Redis过期策略和内存淘汰机制




1、Redis数据为什么会过期

首先,要明白redis是用来做数据缓存的,不是用来做数据存储的(当然也可以当数据库用)。
数据过期主要是有两种情况:

(1)在设置缓存数据时制定了过期时间,这样到了过期时间数据就不见了。

(2)redis的数据是存放在内存中的,而内存是有限的,是不可能放过多数据的,比如只有10G的内存,想要向里面放入12G的数据, 那么就注定会有2G的数据会丢失。



2、redis的过期策略

redis 的过期策略是:定期删除 + 惰性删除

(1)定期删除

定期删除指的是redis默认每隔100ms就随机抽取一些设置了过期时间的key,检测这些key是否过期,如果过期了就将其删掉。

问题】为什么会选择一部分,而不是全部:
因为如果这是redis里面有大量的key都设置了过期时间,那么如果全部去检测一遍,CPU负载就会很高,会浪费大量的时间在检测上面,甚至直接导致redis挂掉。所有只会抽取一部分而不会全部检查。

出现的问题
这样的话就会出现大量的已经过期的key并没有被删除,这就是 为什么有时候大量的key明明

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值