今天看啥  ›  专栏  ›  小鹿学Java

京东二面:内存耗尽后Redis会发生什么?

小鹿学Java  · 公众号  · 科技自媒体  · 2025-07-06 16:10
    

主要观点总结

本文主要介绍了Redis如何处理过期键,以及在服务器内存不足时采用的淘汰策略,包括LRU和LFU两种主要的淘汰算法。

关键观点总结

关键观点1: Redis内存回收和过期策略

Redis可以通过设置键值对的过期时间来实现内存的回收。使用了4个独立的命令来为键设置过期时间,包括ttl、pttl、expire和pexpire。当键过期后,有三种策略可以删除过期的键:定时删除、惰性删除和定期扫描。

关键观点2: Redis的淘汰策略

当Redis的内存满了,而客户端继续执行set等命令时,Redis会采用不同的淘汰策略来处理。提供了8种淘汰策略,可以通过参数maxmemory-policy进行配置。主要的淘汰策略包括LRU和LFU。

关键观点3: LRU算法

LRU算法是Least Recently Used的缩写,即最近最长时间未被使用。Redis对传统的LRU算法进行了改进,通过抽样方式进行删除。配置文件中的maxmemory_samples属性表示随机抽取的样本数。

关键观点4: LFU算法

LFU算法是Least Frequently Used的缩写,即最近最少频率使用。在Redis中,LFU算法的计数器记录在redisObject的lru属性内。当采用LFU回收策略时,访问频次会递增和递减。


免责声明

免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址:访问原文地址
总结与预览地址:访问总结与预览
推荐产品:   推荐产品
文章地址: 访问文章快照