Redis的6种淘汰策略和3种删除过期键策略


Redis中通过maxmemory参数来设定内存的使用上限,当Redis使用内存达到阈值时,会根据配置文件中的设置选取要删除的key来删除,从而给新的键值留出空间。

Redis种有6种淘汰策略

6种淘汰策略

volatile-lru

LRU算法,在设置过期时间的键中,选取一个最近最少使用的key淘汰掉

volatile-ramdom

在设置了过期时间的键中,随机选取一个key淘汰

volatile-ttl

在设置了过期时间的键中,选取一个即将要过期的key淘汰

allkeys-lru

在所有键中,选取一个最近最少使用的key淘汰掉

allkeys-random

在所有键中,随机选取一个淘汰

noeviction(默认使用)

当内存到达阈值后,所有申请内存的操作都会报错

上面6种方案是让我们选出应该淘汰的键,那具体要怎么样进行删除呢?Redis中有3种删除过期键策略

3种删除过期键策略

定时删除

在设置键的过期时间的同时,设置一个定时器,当键过期了,定时器马上把该键删除。

定时删除对内存来说是友好的,因为它可以及时清理过期键;但对CPU是不友好的,如果过期键太多,删除操作会消耗过多的资源。

惰性删除

在键过期时,放任不管,如果后来有请求来查询该键,检测到该键已经过期了,此时才将这个键删除掉。

惰性删除对CPU是友好的,因为只有在读取的时候检测到过期了才会将其删除。但对内存是不友好,如果过期键后续不被访问,那么这些过期键将积累在缓存中,对内存消耗是比较大的。

定期删除

定期删除是定时删除和惰性删除的一个折中方案。每隔一段时间来删除过期键,可以根据实际场景自定义这个间隔时间,在CPU资源和内存资源上作出权衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值