redis的淘汰策略

Redis使用以下几种淘汰策略来管理内存空间:


默认情况下,Redis使用的是LRULeast Recently Used,最近最少使用)淘汰策略。LRU策略会优先淘汰最近最少使用的数据,即当内存空间不足时,会将最久未被访问的键值对从内存中淘汰出去,以腾出空间给新的数据。
在Redis中,LRU策略的实现依赖于近似的LRU算法。它通过维护一个特殊的数据结构,记录每个键值对的访问时间顺序,从而决定哪些数据是最近最少使用的。

需要注意的是,默认情况下,LRU淘汰策略仅在Redis的内存使用达到maxmemory限制时才会触发。如果没有设置maxmemory,Redis将持续增加内存直到服务器崩溃。因此,在生产环境中,建议根据实际需求设置合适的maxmemory值,并根据业务特点选择合适的淘汰策略。

LRULeast Recently Used,最近最少使用):当内存空间不足以容纳新写入数据时,优先淘汰最近最少使用的数据。
LFULeast Frequently Used,最不经常使用):当内存空间不足以容纳新写入数据时,优先淘汰访问频率最低的数据。
Random(随机淘汰):随机选择要淘汰的数据。
TTLTime To Live,生存时间):每个键可以设置一个过期时间,在到达过期时间时自动淘汰。
在实际应用中,可以根据具体需求选择合适的淘汰策略。默认情况下,Redis使用的是LRU策略。此外,还可以通过配置文件或命令来调整淘汰策略,以满足不同的业务需求。


-- **面试问**Redis 中的 Key 过期时,如果对该 Key 执行 GETSETINCR 等操作,Redis 会将这些操作视为“Key 不存在”,因此 GET 操作会返回 nil 或空值。
需要注意的是,即使 Key 已过期,它也不会立即从 Redis 中删除,而是等到有客户端尝试访问它时,Redis 才会对该 Key 进行删除操作。这种机制称为惰性删除(Lazy Deletion)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值