欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

guava本地緩存CacheLoader使用-創(chuàng)新互聯(lián)

最近代碼里看到有部分關(guān)于guava寫本地緩存的,學(xué)習(xí)記錄一下。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供浦城網(wǎng)站建設(shè)、浦城做網(wǎng)站、浦城網(wǎng)站設(shè)計、浦城網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、浦城企業(yè)網(wǎng)站模板建站服務(wù),十載浦城做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

首先guava的本地緩存可以理解成一個緩存map,以kv的形式存數(shù)據(jù),不會持久化,沒有支持分布式。比redis使用起來方便,不用引入額外的組件。如果是單機緩存的話,可以首先選擇使用這種緩存方式。

Guava cache的設(shè)計來源于CurrentHashMap,是線程安全的,可以按照多種策略來清理存儲在其中的緩存值且保持很高的并發(fā)讀寫性能。常見應(yīng)用場景:對性能有非常高的要求、不經(jīng)常變化、占用內(nèi)存不大、有訪問整個集合的需求、數(shù)據(jù)允許不時時一致。

Guava cache的優(yōu)點

多種清理和淘汰策略
支持并發(fā)(采用Segment做分區(qū),線程安全)
更新鎖定(對同一個key,只讓一個請求去讀源并回填緩存,其他請求阻塞等待)
集成數(shù)據(jù)源(一般我們在業(yè)務(wù)中操作緩存,都會操作緩存和數(shù)據(jù)源兩部分GuavaCache的get可以集成數(shù)據(jù)源,在從緩存中讀取不到時可以從數(shù)據(jù)源中讀取數(shù)據(jù)并回填緩存)

使用方法

引入依賴

com.google.guavaguava30.1.1-jre

抽象類

//引入數(shù)據(jù)庫DAO

//定義緩存的map格式
public LoadingCachetestCache

//初始化
@PostConstruct
private void init(){testCache = CacheBuilder.newBuilder()
	 		// 初始大小
            .initialCapacity(1000)
	 		// 緩存池大小
            .maximumSize(1000)
            // 設(shè)置時間對象沒有被讀/寫訪問則對象從內(nèi)存中刪除
            .expireAfterWrite(100, TimeUnit.MINUTES)
            //設(shè)置時間刷新緩存
            .refreshAfterWrite(60,TimeUnit.SECONDS)
            // 移除監(jiān)聽器
            .removalListener(
                new RemovalListener() {  @Override
                  public void onRemoval(RemovalNotificationrn) {handleRemove.accept(rn.getKey());
                  }
                })
            .recordStats()
            .build(
                new CacheLoader() {//第一次加載
                  @Override
                  public String load(Long aLong) throws Exception {return handleNotExist.apply(aLong);
                  }
                  
                //異步刷新(過期刷新機制,調(diào)用LoadingCache.refresh優(yōu)先調(diào)用這里,未重寫則調(diào)上面load)
             	@Override
             	public ListenableFuturereload(Long aLong, String oldValue) throws Exception { 	ListenableFuturetask = ListenableFutureTask.creat( new Callable(){ 	public String call(){ 	//請求數(shù)據(jù)庫
             		return querySqlDAO(key);
             		}
                });
                refreshTaskExecutor.execute(task);
                return task;
                }
               }
    log.info("初始化緩存");
);

實現(xiàn)類,直接繼承抽象類后,寫對應(yīng)的query和refresh函數(shù),參數(shù)判斷,異常處理等。調(diào)用定義緩存LoadingCache的get/refresh方法,其中入?yún)⒍际蔷彺娴膋ey,刷新會優(yōu)先調(diào)用重寫的reload去更新緩存,一般都重寫為異步加載。如果reload沒有被重寫,則調(diào)用load走第一次加載的邏輯。

使用的時候直接調(diào)用實現(xiàn)類中對應(yīng)緩存的方法即可。

參考:
https://blog.csdn.net/ABestRookie/article/details/119901114

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享標題:guava本地緩存CacheLoader使用-創(chuàng)新互聯(lián)
文章路徑:http://aaarwkj.com/article14/deodde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化網(wǎng)站制作、域名注冊、做網(wǎng)站建站公司、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
国内自拍韩国资源在线| 国产胖中年妇女草逼网站| 日韩欧美黄网站免费看| 伊人激情一区二区三区| 日本精品av一区二区| 精品中文人妻中文字幕| 日本午夜理论视频在线播放 | 色呦呦一区二区三区视频| 九九视频精品免费高清视频| 欧美日韩国产激情在线观看| 亚洲精品尤物福利在线一区| 欧美精品久久久久九九九| 麻豆精品情欲人妻一区| 国产黄片自拍视频免费看| 亚洲精品一二三区免费| 午夜欧美激情在线视频| 高清在线一区二区在线| 久久国产欧美日韩精品免费 | 欧美一区二区三区久久妇| 97久久久人妻精品一区| 91老熟女露脸嗷嗷叫| 免费观看国产性生活片| 美女网站色在线免费观看午夜精品| 日本黄色小网站在线播放| 持续侵犯人妻中文字幕| 激情内射日本一区二区三区| av真人青青小草一区二区欧美| 国产丝袜美腿诱惑久久| 日韩无砖区2021不卡| 日韩精品成人亚洲天堂| 偷拍福利视频一区二区三区| 深夜av一区二区三区| 国产精品高清另类一区二区三区| 99热这里只有精品最新| 青青草网站在线观看视频| 日本精品不卡一二三区| 国产精品情侣av自拍| 色婷婷av一区二区三区张| 日韩一区二区三区91| 亚洲不卡在线免费av| 亚洲视频免费在线一区|