JAvaキャッシュのローカルキャッシュ:LoadingCache
1605 ワード
利点:GuavaCacheは、スレッドセキュリティの実装メカニズムを提供するフルメモリのローカルキャッシュ実装です.全体的にGuava cacheはローカルキャッシュの選択肢であり、簡単で使いやすく、性能が良い.
簡単で使いやすいと思います.redisほど複雑ではありません.そんなに多くの構成があります.
次のように使用します.
LRUアルゴリズムの概要:
LRUアルゴリズムは、データの履歴に基づいてデータを淘汰し、「データが最近アクセスされた場合、将来アクセスされる確率も高くなる」という核心思想を持っている.
具体的な実装:
1.新しいデータをチェーンテーブルのヘッダに挿入する.
2.キャッシュヒット(すなわち、キャッシュデータがアクセスされる)毎に、データをチェーンテーブルヘッダに移動する.
3.チェーンテーブルがいっぱいになったら、チェーンテーブルの末尾のデータを破棄します.
次に、ローカルキャッシュを使用します.
1つの設定値、1つの設定値を取得します.
簡単で使いやすいと思います.redisほど複雑ではありません.そんなに多くの構成があります.
次のように使用します.
private static LoadingCache loadingCache = CacheBuilder.newBuilder()
//
.initialCapacity(1000)
// // :LRU .
.maximumSize(10000)
//
.expireAfterAccess(12, TimeUnit.HOURS).build(
new CacheLoader() {
// , get : null load
@Override
public String load(String s) throws Exception {
return "null";
}
});
LRUアルゴリズムの概要:
LRUアルゴリズムは、データの履歴に基づいてデータを淘汰し、「データが最近アクセスされた場合、将来アクセスされる確率も高くなる」という核心思想を持っている.
具体的な実装:
1.新しいデータをチェーンテーブルのヘッダに挿入する.
2.キャッシュヒット(すなわち、キャッシュデータがアクセスされる)毎に、データをチェーンテーブルヘッダに移動する.
3.チェーンテーブルがいっぱいになったら、チェーンテーブルの末尾のデータを破棄します.
次に、ローカルキャッシュを使用します.
public static void setKey(String key,String value){
loadingCache.put(key,value); //put 。
}
public static String getKey(String key){
String value = null;
try {
value = loadingCache.get(key);
if ("null".equals(value)){
return null;
}
return value;
}catch (Exception e){
logger.error("localCache get error ",e);
}
return null;
}
1つの設定値、1つの設定値を取得します.