Redis的内存淘汰算法和原理是什么?

Redis的内存淘汰策略是指:当redis的使用率已经达到了Maxmemory 的上限的时候,就会触发内存释放的一个行为。

Redis提供4种内存淘汰算法:

1. 随机移除某个key(random算法)

2. TTL算法 在设置了过期时间的key里,找到更早过期的key移除

3. LRU算法,移除使用频率低的key

4. LFU算法 和LRU算法类似(redis4新增加)

LRU算法会在redis里面维护一个大小为16的候选池,根据时间排序,每一次随机抽出来5个key放到候选池中候选池满了,访问的时间间隔最大的key,就会被取出来淘汰掉。

若某个时间该key使用频繁,这样就会被误认为热点key,LFU增加了访问频率这个判断纬度,统计热点情况

Redis 过期键的删除策略?

  • 定时删除:在设置键的过期时间的同时,创建一个定时器 timer。让定时器在键的过期时间来临时,立即执行对键的删除操作。

  • 惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。

  • 定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值