本期目录
前言
Caffeine 因为使用了 Window-TinyLFU 缓存淘汰策略,提供了一个近乎最佳的命中率。综合了 LRU 和 LFU 算法的长处,使其成为本地缓存之王。
1.算法框架
下面两幅图都是 W-TinyLFU 算法的示意图,对比着看去理解。


在 W-TinyLFU 算法中,将整个缓存区划分为两大区域:Window Cache 和 Main Cache 。
Window Cache 是一个标准的 LRU 缓存,只占整个缓存内存空间大小的 1% ;
而 Main Cache 则是一个 SLRU (Segmented LRU) ,占整个缓存内存空间大小的 99% ,是缓存的主要区域。里面进一步被划分成两个区域:Probation Cache 观察区和 Protected Cache 保护区。Probation 观察区占 Main Cache 大小的 20%;而 Protected 保护区占 Main Cache 大小的 80% ,是 Main Cache 的主要区域。
【小贴士】
- W-TinyLFU 算法中的 3 个区域
Caffeine的W-TinyLFU缓存淘汰策略解析

Caffeine采用W-TinyLFU策略,结合LRU和LFU的优点,通过WindowCache、ProbationCache和ProtectedCache三个区域管理缓存,利用Count-MinSketch算法节省空间并处理访问频率。此策略确保新数据和高频数据得以保留,同时适应稀疏流量和短时热点流量。
最低0.47元/天 解锁文章
672

被折叠的 条评论
为什么被折叠?



