ホームページ >Java >&#&チュートリアル >Guava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツール

Guava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツール

WBOY
WBOYオリジナル
2024-01-31 17:01:061305ブラウズ

Guava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツール

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&lt;Key, Value&gt; cache = CacheBuilder.newBuilder() .maximumSize(100) .expireAfterWrite(10, TimeUnit.MINUTES) .removalListener(new RemovalListener&lt;Key, Value&gt;() { @Override public void onRemoval(RemovalNotification&lt;Key, Value&gt; notification) { // 处理被驱逐的数据 } }) .build(new CacheLoader&lt;Key, Value&gt;() { @Override public Value load(Key key) throws Exception { // 从数据库或其他数据源加载数据 return loadFromDataSource(key); } });</pre>キャッシュ使用シナリオ

Guava キャッシュは、さまざまな目的 シナリオは次のとおりです。

データベース クエリ結果のキャッシュ: データベース クエリ結果をキャッシュできるため、次回クエリを実行するときに、クエリを実行せずにキャッシュから直接データを取得できます。再びデータベース。
  • リモート API 呼び出し結果のキャッシュ: リモート API 呼び出し結果をキャッシュできるため、次回呼び出したときに、リモート API を再度呼び出すことなく、キャッシュから直接データを取得できます。
  • ファイルの内容をキャッシュする: ファイルの内容をキャッシュすると、次回ファイルを読み取るときに、ファイルを再度読み取ることなく、キャッシュから直接データを読み取ることができます。
  • キャッシュに関する注意事項

Guava キャッシュを使用する場合は、次の点に注意する必要があります。

キャッシュの容量には限りがあるため、キャッシュが大きくなりすぎないように、定期的にキャッシュをクリーンアップします。
  • キャッシュされたデータは古くなる可能性があるため、キャッシュを定期的に更新して、キャッシュ内のデータが最新であることを確認する必要があります。
  • キャッシュされたデータは他のスレッドによって変更される可能性があるため、データの不整合を防ぐためにキャッシュされたデータを同期する必要があります。
  • 概要

Guava キャッシュは、プログラムのパフォーマンスを大幅に向上させるのに役立つ非常に強力なツールです。プログラムでキャッシュを使用する必要がある場合、Guava キャッシュは非常に良い選択です。

以上がGuava キャッシュ チュートリアル: プログラムの効率を向上させる魔法のツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。