XXL-CACHE v1.2.0 | 多級緩存框架

Release Notes

  • 1、【增強】多序列化協(xié)議支持:針對L2緩存,組件化抽象Serializer,可靈活擴展更多序列化協(xié)議;
  • 2、【優(yōu)化】移除冗余依賴,精簡Core體積;

XXL- CACHE 快速接入示例

代碼參考github倉庫 /test 目錄:https://github.com/xuxueli/xxl-cache/tree/master/xxl-cache-samples

1、Maven引入

<!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-cache-core -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-cache-core</artifactId>
    <version>${最新穩(wěn)定版}</version>
</dependency>

2、組件配置

配置文件說明:

# xxl-cache
## L1緩存(本地)提供者,默認 caffeine
xxl.cache.l1.provider=caffeine
## L1緩存最大容量,默認10000;
xxl.cache.l1.maxSize=-1
## L1緩存過期時間,單位秒,默認10min;
xxl.cache.l1.expireAfterWrite=-1
## L2緩存(分布式)提供者,默認 redis
xxl.cache.l2.provider=redis
## L2緩存序列化方式,默認 java
xxl.cache.l2.serializer=java
## L2緩存節(jié)點配置,多個節(jié)點用逗號分隔;示例 “127.0.0.1:6379,127.0.0.1:6380”
xxl.cache.l2.nodes=127.0.0.1:6379
## L2緩存用戶名配置
xxl.cache.l2.user=
## L2緩存密碼配置
xxl.cache.l2.password=

組件初始化配置:

@Bean(initMethod = "start", destroyMethod = "stop")
public XxlCacheFactory xxlCacheFactory() {
    XxlCacheFactory xxlCacheFactory = new XxlCacheFactory();
    xxlCacheFactory.setL1Provider(l1Provider);
    xxlCacheFactory.setMaxSize(maxSize);
    xxlCacheFactory.setExpireAfterWrite(expireAfterWrite);
    xxlCacheFactory.setL2Provider(l2Provider);
    xxlCacheFactory.setSerializer(serializer);
    xxlCacheFactory.setNodes(nodes);
    xxlCacheFactory.setUser(user);
    xxlCacheFactory.setPassword(password);
    return xxlCacheFactory;
}

經(jīng)過上述2步,已完成全部配置工作。

3、客戶端接入:

String category = "user";
long survivalTime = 60*1000;
String key = "user03";
/**
* 1、定義緩存對象,并指定 “緩存category + 過期時間”
*/
XxlCacheHelper.XxlCache userCache = XxlCacheHelper.getCache(category, survivalTime);
/**
* 2、緩存寫:按照 L1 -> L2 順序依次寫緩存,同時借助內(nèi)部廣播機制更新全局L1節(jié)點緩存;
*/
userCache.set(key, value);
/**
* 3、緩存讀:按照 L1 -> L2 順序依次讀取緩存,如果L1存在緩存則返回,否則讀取L2緩存并同步L1;
*/
userCache.get(key);
/**
* 4、緩存刪:按照 L1 -> L2 順序依次刪緩存,同時借助內(nèi)部廣播機制更新全局L1節(jié)點緩存;
*/
userCache.del(key);
...

簡介

XXL-CACHE 是一個 多級緩存框架,高效組合本地緩存和分布式緩存(Redis+Caffeine),支持“多級緩存、一致性保障、TTL、Category隔離、防穿透”等能力;擁有“高性能、高擴展、靈活易用”等特性,提供高性能多級緩存解決方案;

img_01.png

特性

  • 1、靈活易用: 接入靈活方便,一分鐘上手;
  • 2、多級緩存:高效組合本地緩存和分布式緩存(Redis+Caffeine),支持L1、L2級別緩存,支持多場景緩存訴求;
  • 3、高擴展:框架進行模塊化抽象設計,本地緩存、分布式緩存以及序列化方案均支持自定義擴展;
  • 4、高性能:底層設計L1(Local)+L2(Remote)多級緩存模型,除分布式緩存之外前置在應用層設置本地緩存,高熱查詢前置本地處理避免遠程通訊,最大化提升性能;
  • 5、一致性保障:支持多層級、集群多節(jié)點之間緩存數(shù)據(jù)一致性保障,借助廣播消息(Redis Pub/Sub)以及客戶端主動過期,實現(xiàn)L1及L2之間以及L1各集群節(jié)點間緩存數(shù)據(jù)一致性同步;
  • 6、TTL:支持TTL,支持緩存數(shù)據(jù)主動過期及清理;
  • 7、Category隔離:支持自定義緩存Category分類,緩存數(shù)據(jù)存儲隔離;
  • 8、緩存風險治理:針對典型緩存風險,如緩存穿透,底層進行針對性設計進行風險防護;
  • 9、透明接入:支持業(yè)務透明接入,屏蔽底層實現(xiàn)細節(jié),降低業(yè)務開發(fā)成本,以及學習認知成本;
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容