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增加了访问频率这个判断纬度,统计热点情况