Redis缓存淘汰策略

本文详细介绍了Redis的内存管理,包括如何查看内存大小、默认设置及如何修改。重点讨论了Redis的内存淘汰策略,如定时删除、惰性删除和定期删除的优缺点,并详述了Redis 6.0.8版本的八种淘汰策略,如LRU、LFU等。此外,还解析了LRU算法的实现原理,即HashMap+DoubleLinkedList的结构。
摘要由CSDN通过智能技术生成

Redis默认内存,

1、查看Redis内存大小,通过查看配置文件maxmemory,

2、redis默认内存是多少,最大物理内存的四分之三,

3、如何修改redis内存设置,

修改文件配置,

config set maxmemory,

config get maxmemory,

4、查看 info memory

redis内存淘汰策略,如何淘汰的

在下面架构设计之前,有三种不同的淘汰策略,

定时删除,对CPU不友好,用处理器性能换取存储空间,CPU比较繁忙

惰性删除,数据到达过期时间,不做处理,等下次访问该数据时,如果未过期,返回数据,发现已过期,删除,返回不存在。对内存不友好,如果一个键已经过期,而这个键又仍然保留在数据库中国,那么只要这个过期键不被删除,它所占用的内存就不会被释放。CPU不那么忙了,但是空间浪费了,对内存不友好。

定期删除,折中方式,两种策略综合,定期删除,每隔一段时间执行一次删除过期键操作,随机抽取进行检查删除。

周期性轮询redis库中时效数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度。

定期删除的难点是确定删除操作执行的时长和频率

Redis6.0.8版本,八种缓存淘汰策略

noeviction:不会驱逐任何key

allkeys-lru对所有key使用LRU算法进行删除

volatile-lru对所有设置了过期时间的key使用lru算法进行删除

allkeys-random对所有key随机删除

volatile-random:对所有设置了过期时间的key随机删除

volatile-ttl删除马上要过期的key

allkeys-lfu对所有key使用LFU算法进行删除

volatile-lfu对所有设置了过期时间的key使用LFU算法进行删除

两个维度,对过期键中筛选,对所有键中筛选

四个方面,LRU,LFU,random,ttl

一般常用的是allkeys-lru

redis的lru算法,Least Recently Used缩写

本质就是HashMap+DoubleLinkedList 哈希表+双向链表的结合体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值