2.11. ニアキャッシングの設定
Hot Rod Java クライアントは、最近使用されたデータを格納するローカルキャッシュを保持することができます。これにより、データはクライアントにローカルであるため、get()
および getVersioned()
操作のパフォーマンスが大幅に向上します。
Hot Rod Java クライアントでニアキャッシュを有効にすると、get()
または getVersioned()
呼び出しにより、エントリーがサーバーから取得される際にニアキャッシュが設定されます。サーバー側でエントリーが更新または削除されると、ニアキャッシュのエントリーが無効になります。キーが無効になった後にリクエストされた場合、クライアントはサーバーからキーを再度取得する必要があります。
ニアキャッシュに含めることができるエントリーの数を設定することもできます。最大に達すると、ニアキャッシュされたエントリーはエビクトされます。
ニアキャッシュ読み取りはエントリーの最終アクセス時間を伝播しないため、ニアキャッシュで最大アイドル有効期限を使用しないでください。
- クラスター化されたキャッシュモードを使用すると、クライアントが異なるサーバーにフェイルオーバーすると、ニアキャッシュが消去されます。
- ニアキャッシュに格納できるエントリーの最大数を常に設定する必要があります。非有界のニアキャッシュでは、クライアント JVM の境界内にニアキャッシュのサイズを保持する必要があります。
- ニアキャッシュの無効化メッセージにより書き込み操作のパフォーマンスが低下します。
手順
-
必要なキャッシュのクライアント設定で、ニアキャッシュモードを
INVALIDATED
に設定します。 - エントリーの最大数を指定して、ニアキャッシュのサイズを定義します。
import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; import org.infinispan.client.hotrod.configuration.NearCacheMode; ... // Configure different near cache settings for specific caches ConfigurationBuilder builder = new ConfigurationBuilder(); builder .remoteCache("bounded") .nearCacheMode(NearCacheMode.INVALIDATED) .nearCacheMaxEntries(100); .remoteCache("unbounded").nearCache() .nearCacheMode(NearCacheMode.INVALIDATED) .nearCacheMaxEntries(-1);
キャッシュごとに、常にニアキャッシュを設定する必要があります。Data Grid はグローバルニアキャッシュ設定プロパティーを提供しますが、使用しないでください。