西安高端品牌網站建設seo優(yōu)化培訓機構
目錄
前言
算法原理
Caffeine算法的背景和優(yōu)勢
什么是Caffeine算法
Caffeine算法的工作原理
常見的緩存數(shù)據(jù)淘汰算法
FIFO
LRU
LFU
W-TinyLFU
Caffeine W-TinyLFU 實現(xiàn)
元素驅逐
元素訪問
Caffeine 的四種緩存添加策略
1. 手動加載
2. 自動加載
3. 手動異步加載
4. 自動異步加載
Caffeine算法的應用場景
前言
緩存,在我們的日常開發(fā)中用的非常多,是我們應對各種性能問題支持高并發(fā)的一大利器。我們熟知的緩存有堆緩存(Ehcache3.x、Guava Cache等)、堆外緩存(Ehcache3.x、MapDB等)、分布式緩存(Redis、 memcached等)等等。今天要上場的主角是Caffeine,它其實是Google基于Java8對GuavaCache的重寫升級版本,支持豐富的緩存過期策略,尤其是TinyLfu 淘汰算法,提供了一個近乎最佳的命中率。從性能上(讀、寫、讀/寫)也足以秒殺其他一堆進程內緩存框架。Spring5更是直接放棄了使用了多年的Guava,而采用了Caffeine。
Google Caffeine算法?是一種緩存淘汰算法,主要用于Caffeine緩存庫。Caffeine是由Google基于Java 8開發(fā)的,旨在提供高性能的本地緩存解決方案。它采用了W-TinyLFU(Weighted Tiny LFU)算法,結合了LFU(Least Frequently Used)