内存回收
1.过期Key的处理 RedisDb是按功能进行分区的
RedisDb 内存图
2.1
惰性删除: 如果想已过期就立即删除, 那么就要给每个key安装监视器, 成本巨大
因此我们使用懒删除, 访问到key时查看是否过期, 是则删除, 否则继续.
2.2
周期删除: 抽样删除(有些key已过期但很少人访问可能造成长期内存浪费)
2.2.1
Slow & Fast
3.内存淘汰策略
主动淘汰机制
在内存不够用时,不是随机淘汰,
而是让最近访问少、访问频率低的 key 先被淘汰。
为了做到这一点,它为每个 key 维护一个压缩的“访问频率统计信息”。
LRU: 最近使用最少
LFU: 使用频率最小
LFU:
3.1 逻辑访问函数
3.2 逻辑衰减
