ホームページ >Java >&#&チュートリアル >Guava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツール
Guava キャッシュは、プログラムのパフォーマンスを大幅に向上させるのに役立つ Java の効率的なキャッシュ ライブラリです。 。 LRU (最も最近使用されていない) や LFU (最も頻繁に使用されていない) などの複数のキャッシュ戦略、およびローカル ロードやリモート ロードなどの複数のキャッシュ ロード方法を提供します。
Guava キャッシュの使用は非常に簡単で、必要なコードは数行だけです。まず、キャッシュ インスタンスを作成する必要があります。次のコードを使用して、最大容量 100 の LRU キャッシュを作成できます。
LoadingCache<Key, Value> cache = CacheBuilder.newBuilder() .maximumSize(100) .build(new CacheLoader<Key, Value>() { @Override public Value load(Key key) throws Exception { // 从数据库或其他数据源加载数据 return loadFromDataSource(key); } });
その後、キャッシュを使用してデータを保存および取得できます。次のコードを使用してデータをキャッシュに保存できます:
cache.put(key, value);
次のコードを使用してキャッシュからデータを取得することもできます:
Value value = cache.get(key);
データがキャッシュに存在しない場合, ## は #CacheLoader.load() と呼ばれますメソッドはデータ ソースからデータを読み込みます。
CacheBuilder クラスを通じて、最大容量、有効期限、エビクション ポリシーなど、キャッシュのさまざまなパラメーターを構成できます。たとえば、次のコードを使用して、最大容量 100、有効期限 10 分の LRU キャッシュを作成できます。
LoadingCache<Key, Value> cache = CacheBuilder.newBuilder() .maximumSize(100) .expireAfterWrite(10, TimeUnit.MINUTES) .build(new CacheLoader<Key, Value>() { @Override public Value load(Key key) throws Exception { // 从数据库或其他数据源加载数据 return loadFromDataSource(key); } });
CacheBuilder# を使用してキャッシュエビクション ポリシーを構成することもできます。 ## クラス。たとえば、次のコードを使用して、キャッシュがいっぱいになったときに最も最近使用されていないデータを削除する LRU キャッシュを作成できます。 <pre class='brush:java;toolbar:false;'>LoadingCache<Key, Value> cache = CacheBuilder.newBuilder()
.maximumSize(100)
.expireAfterWrite(10, TimeUnit.MINUTES)
.removalListener(new RemovalListener<Key, Value>() {
@Override
public void onRemoval(RemovalNotification<Key, Value> notification) {
// 处理被驱逐的数据
}
})
.build(new CacheLoader<Key, Value>() {
@Override
public Value load(Key key) throws Exception {
// 从数据库或其他数据源加载数据
return loadFromDataSource(key);
}
});</pre>
キャッシュ使用シナリオ
以上がGuava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。