ホームページ  >  記事  >  Java  >  Java API開発におけるキャッシュのためのEhCache2の使用

Java API開発におけるキャッシュのためのEhCache2の使用

PHPz
PHPzオリジナル
2023-06-18 08:40:09765ブラウズ

アプリケーションの継続的な開発に伴い、キャッシュはシステム パフォーマンスの安定性を確保するための重要な部分になっています。 Java アプリケーションの開発では、キャッシュに EhCache2 を使用することが一般的になっています。この記事では、EhCache2 の基本的な概念と使い方を紹介し、Java API 開発におけるキャッシュ処理に EhCache2 を使用する方法をサンプルコードを使用して説明します。

EhCache2とは何ですか?

EhCache2 は、アプリケーションのパフォーマンスを効果的に向上させ、バックエンド データベースへの負荷を軽減できるオープン ソースの Java キャッシュ フレームワークです。 EhCache2 は、オブジェクト、データ レコード、ファイルなど、さまざまなタイプのデータをキャッシュするために使用できます。メモリ キャッシュをサポートするだけでなく、キャッシュされたデータを永続化するためにディスクに書き込みます。さらに、EhCache2 は、分散キャッシュ、キャッシュのウォームアップ、キャッシュの有効期限処理など、多くの高度な機能も提供します。

キャッシュに EhCache2 を使用する

Java API 開発でキャッシュに EhCache2 を使用するのは非常に簡単です。まず、EhCache2 の依存関係をプロジェクトに追加する必要があります。

<dependency>
    <groupId>org.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>3.8.1</version>
</dependency>

次に、EhCache 構成ファイル ehcache.xml を作成します。このファイルはプロジェクトのクラスパスの下に配置され、次の内容が含まれている必要があります:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://www.ehcache.org/ehcache.xsd"
         updateCheck="false">
 
    <cache name="myCache"
           maxEntriesLocalHeap="10000"
           eternal="false"
           timeToIdleSeconds="120"
           timeToLiveSeconds="120"
           diskSpoolBufferSizeMB="30"
           diskExpiryThreadIntervalSeconds="120"
           memoryStoreEvictionPolicy="LRU"
           statistics="true">
        <persistence strategy="localTempSwap"/>
    </cache>
 
</ehcache>

この構成ファイルでは、次の特性を持つ「myCache」という名前のキャッシュを定義します:

  • ヒープ内のキャッシュされた要素の最大数は 10000 です
  • 要素が 120 秒以内にアクセスされなかった場合、要素は自動的に削除されます
  • 要素が 120 秒以内に更新されなかった場合自動的に削除されます。
  • 要素がディスクに書き込まれるときのキャッシュ サイズは 30 MBです。
  • ディスク クリーニング スレッドは 120 秒ごとに実行されます。
  • メモリ クリーニング ポリシーは LRU です。
  • キャッシュ統計を有効にする

次に、Java コードでのキャッシュ処理に EhCache2 を使用します。サンプル コードは次のとおりです。

public class MyService {
 
    private final Cache myCache;
 
    public MyService() {
        final CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
                .withCache("myCache",
                        CacheConfigurationBuilder.newCacheConfigurationBuilder()
                                .withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofSeconds(120)))
                                .withSize(10, EntryUnit.THOUSAND)
                                .build())
                .build(true);
 
        myCache = cacheManager.getCache("myCache", String.class, String.class);
    }
 
    public String getValue(String key) {
        String value = myCache.get(key);
        if (value == null) {
            value = fetchValueFromDatabase(key);
            myCache.put(key, value);
        }
        return value;
    }
 
    private String fetchValueFromDatabase(String key) {
        // 从数据库中获取值的逻辑
    }
 
}

このサンプル コードでは、「myCache」という名前のキャッシュ インスタンスを作成します。キーに対応する値を取得する必要がある場合、まずキャッシュから値を取得しようとします。値がキャッシュに存在しない場合は、データベースから値が取得され、キャッシュに書き込まれます。

概要

この記事では、EhCache2 の基本的な概念と使い方を簡単に紹介し、Java API 開発におけるキャッシュ処理に EhCache2 を使用する方法をサンプル コードを通じて示します。実際の開発では、キャッシュに EhCache2 を使用すると、アプリケーションのパフォーマンスと信頼性が効果的に向上し、バックエンド データベースの負荷プレッシャーが大幅に軽減されます。

以上がJava API開発におけるキャッシュのためのEhCache2の使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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