layering-cache為監(jiān)控而生的多級緩存框架
layering-cache是一個支持分布式環(huán)境的多級緩存框架,使用方式和spring-cache類似。一級緩存使用Caffeine作為本地緩存,二級緩存使用redis作為集中式緩存。一級緩存和二級緩存的數(shù)據(jù)一致性是通過推和拉兩種模式相結(jié)合的方式來實(shí)現(xiàn)的。推主要是基于redis的pub/sub機(jī)制,拉主要是基于消息隊列和記錄消費(fèi)消息的偏移量來實(shí)現(xiàn)的。
支持
- 支持緩存命中率的監(jiān)控統(tǒng)計,統(tǒng)計數(shù)據(jù)上報支持自定義擴(kuò)展
- 內(nèi)置dashboard,支持對緩存的管理和緩存命中率的查看
- 支持緩存過期時間在注解上直接配置
- 支持緩存的自動刷新(當(dāng)緩存命中并發(fā)現(xiàn)二級緩存將要過期時,會開啟一個異步線程刷新緩存)
- 緩存Key支持SpEL表達(dá)式
- Redis支持Kryo、FastJson、Jackson、Jdk和Protostuff序列化,默認(rèn)使用Protostuff序列化,并支持自定義的序列化
- 支持同一個緩存名稱設(shè)置不同的過期時間
- 支持禁用一級緩存,只使用二級緩存
- 通過允許存空值來解決緩存穿透問題
優(yōu)勢
- 提供緩存命中率的監(jiān)控統(tǒng)計,統(tǒng)計數(shù)據(jù)上報支持自定義擴(kuò)展
- 支持本地緩存和集中式兩級緩存
- 接入成本和使用成本都非常低
- 支持Spring、Spring boot
- 內(nèi)置dashboard使得緩存具備可運(yùn)維性
文檔
評論
圖片
表情
