Guava快取的使用

2021-09-24 03:37:04 字數 1138 閱讀 5571

適用於

你願意消耗一些記憶體空間來提公升速度。

你預料到某些鍵會被查詢一次以上。

快取中存放的資料總量不會超出記憶體容量。

cacheloader方式

//這種方式的返回值不能為null,會報異常

//這種方式使用get方法來獲取快取的值

//使用put賦值快取,put裡面傳入的是快取的key和入參,value值是load方法返回值

public

void

testloadingcache()

throws exception })

; system.out.

println

("a value:"

+ cahcebuilder.

get(

"a"));

cahcebuilder.

put(

"b",

"bbbb");

}

callable callback方式

//這種方式更加的靈活。可以在要使用的時候直接get

//這種方式使用getifpresent方法來獲取快取的值

public

void

testcallablecache()

throws exception })

; system.out.

println

("a value : "

+ resultval)

; resultval = cache.

getifpresent

("b");

system.out.

println

("a value : "

+ resultval)

;}

**的引數:

refresh機制:

1. loadingcache.refresh(k) 在生成新的value的時候,舊的value依然會被使用。

2. cacheloader.reload(k, v) 生成新的value過程中允許使用舊的value

3. cachebuilder.refreshafterwrite(long, timeunit) 自動重新整理cache

guava實現本地快取

private staticloadingcachecache cachebuilder的建構函式是私有的,只能通過其靜態方法newbuilder 來獲得cachebuilder的例項 cachebuilder.newbuilder 設定併發級別為8,併發級別是指可以同時寫快取的執行緒數 concu...

guava快取原理 listener

有時我們需要在快取被移除時得到這個通知,並做一些額外處理。這時removallistener就派上用場了。removallistener removallistener newremovallistener cacheloader loader newcacheloader loadingcache...

guava使用系列之Optional

1.用optional提前丟擲null person person getperson 11234 string name person.getname person為null的時候.要到用的時候丟擲異常,用了optional在建立的時候就能丟擲 optionalpersonoptional opt...