Guava キャッシュの正しい使用方法
Guava キャッシュは、Java オブジェクトをキャッシュするための高性能ライブラリです。さまざまなキャッシュ戦略が提供されており、アプリケーションのパフォーマンスを向上させるために、ニーズに応じて適切な戦略を選択できます。
基本的な使用法
Guava キャッシュを使用するには、まずキャッシュ インスタンスを作成する必要があります。次のコードを使用して、LRU (最も最近使用されていない) ポリシーに基づいてキャッシュを作成できます。
Cache<Key, Value> cache = CacheBuilder.newBuilder() .maximumSize(1000) .build();
ここで、Key
と Value
は、キャッシュのデータ型です。それぞれキャッシュキーとキャッシュ値。 maximumSize
キャッシュの最大容量を指定します。キャッシュが最大容量に達すると、LRU ポリシーに従って、最も長期間使用されていないキャッシュ項目が削除されます。
次に、データをキャッシュに入れることができます。次のコードを使用して、キー key
と値 value
をキャッシュに入れることができます。
cache.put(key, value);
キャッシュからデータを取得するには、次のコードを使用できます。コード:
Value value = cache.getIfPresent(key);
キー key
に対応する値がキャッシュに存在する場合はその値を返し、存在しない場合は null
を返します。
キャッシュ戦略
Guava キャッシュはさまざまなキャッシュ戦略を提供しており、アプリケーションのパフォーマンスを向上させるためのニーズに応じて適切な戦略を選択できます。一般的に使用されるキャッシュ戦略は次のとおりです。
同時実行制御
Guava キャッシュはスレッドセーフであり、マルチスレッド環境で使用できます。ただし、キャッシュに対して同時更新を実行する場合は、同時実行制御メカニズムを使用してデータの正確性を保証する必要があります。
Guava キャッシュは 2 つの同時実行制御メカニズムを提供します:
Cache.get(Key, Callable)
メソッドを使用できます。キャッシュされた値を取得します。キー key
に対応する値がキャッシュに存在しない場合、Callable
オブジェクトが呼び出されて値が計算され、計算結果がキャッシュに格納されます。このアプローチにより、同時環境では 1 つのスレッドだけがキャッシュされた値を計算できるようになります。 Cache.asMap().putIfAbsent(Key, Value)
メソッドを使用して、キャッシュ値をアトミックに更新できます。キー key
に対応する値がキャッシュに存在しない場合は、値 value
がキャッシュに配置されます。それ以外の場合は、操作は実行されません。このアプローチにより、同時環境では 1 つのスレッドだけがキャッシュされた値を更新できるようになります。 ベスト プラクティス
Guava キャッシュのパフォーマンスと信頼性を向上させるには、次のベスト プラクティスに従うことができます。適切なキャッシュ戦略を選択してください。アプリケーションの実際の状況に応じて、最適なキャッシュ戦略を選択すると、キャッシュ ヒット率が向上し、キャッシュ オーバーヘッドが削減されます。
次は、Guava キャッシュを使用したコード例です:
import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; public class GuavaCacheExample { public static void main(String[] args) { // 创建一个基于LRU策略的缓存 Cache<String, String> cache = CacheBuilder.newBuilder() .maximumSize(1000) .build(); // 将数据放入缓存中 cache.put("key1", "value1"); cache.put("key2", "value2"); // 从缓存中获取数据 String value1 = cache.getIfPresent("key1"); String value2 = cache.getIfPresent("key2"); // 打印缓存中的数据 System.out.println("value1: " + value1); System.out.println("value2: " + value2); } }出力結果:
value1: value1 value2: value2
以上がGuava キャッシュ使用実践ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。