Redis的过期策略和淘汰策略

本文详细解读Redis的过期策略,包括定时、惰性和定期过期,并介绍4.0前后不同内存淘汰策略:volatile-lru、allkeys-lru等,以及新增的volatile-lfu和allkeys-lfu。

redis的过期策略

1)定时过期

每个创建的KEY都设置一个定时器,到过期时间,则对KEY删除。

优点:定期删除数据,对内存友好
缺点:占用大量CPU去清除数据,影响缓存的响应时间和吞吐量

2)惰性过期

在访问KEY时,才去判断它是否过期,过期就清除数据。

优点:节省CPU资源
缺点:对内存不友好

3)定期过期

每隔一段时间,随机清除内存中过期的KEY。
它是定时过期和惰性过期的折中方案。
Redis中同时使用了惰性过期和定期过期两种过期策略。

redis的内存淘汰策略

redis4.0以前的淘汰策略

volatile-lru:当内存不足以容纳新写入数据时,从设置了过期时间的key中使用LRU(最近最少使用)算法进行淘汰;
allkeys-lru:当内存不足以容纳新写入数据时,从所有key中使用LRU(最近最少使用)算法进行淘汰。
volatile-random:当内存不足以容纳新写入数据时,从设置了过期时间的key中,随机淘汰数据;。
allkeys-random:当内存不足以容纳新写入数据时,从所有key中随机淘汰数据。
volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的key中,根据过期时间进行淘汰,越早过期的优先被淘汰;
noeviction:默认策略,当内存不足以容纳新写入数据时,新写入操作会报错。

redis4.0以后新增的淘汰策略

volatile-lfu:4.0版本新增,当内存不足以容纳新写入数据时,在过期的key中,使用LFU算法进行删除key。
allkeys-lfu:4.0版本新增,当内存不足以容纳新写入数据时,从所有key中使用LFU算法进行淘汰;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值