Redis的缓存淘汰策略

Redis在内存达到maxmemory限制时,会依据设定的策略如LRU、LFU、随机等淘汰缓存。LRU淘汰不常使用的key,LFU考虑访问频次,ttl策略优先淘汰接近过期的key。直接报错策略则在内存不足时抛出异常。建议根据场景选择策略并设置合理的缓存过期时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maxmemory的使用

当redis使用内存达到了一个maxmemory的参数配置阈值的时候,那么redis就会根据配置的内存淘汰策略,把访问频率不高的key从内存里面移除掉,maxmemory的默认值是服务器的最大内存。

Redis提供的部分缓存淘汰策略

1. 采用LRU策略

把不经常使用的key直接淘汰掉。

2. 采用LFU策略

它在LRU的算法上做了一些优化,增加了数据的访问频次。从而去确保淘汰的数据是非热点的。

3. 采用随机策略

也就是它随机删除一些key。

4. ttl策略

从设置了过期时间的key里面,挑选出过期时间最近的一些key进行优先淘汰。

5. 直接报错

也就是当内存不够的时候,直接抛出一个异常。这是一个默认的处理策略。

6. 配置方法

这些策略我们可以直接在redis.conf这个文件里面去手动配置和修改。

我们可以根据缓存的类型和缓存使用的场景去选择合适的淘汰策略。

建议增加缓存时间

最后一个方面,我们在使用缓存的时候,建议增加这些缓存的过期时间。因为我们知道这些缓存大概的一个生命周期,从而去更好的利用好内存。

总结

Redis是一个基于内存的key-value存储中间件,而内存又是一个非常宝贵的资源。

如何用有限的服务器资源去支撑更多的业务,那我们就必须考虑到缓存的有效使用,也就是需要去考虑到缓存的淘汰算法。把一些不怎么使用的缓存淘汰掉。

参考资料【Java面试】美团一面,描述一下Redis的缓存淘汰策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值