4.2. 有効期限
の場合と同様ですが、エビクションとは異なり、エビクションは有効期限です。有効期限により、有効期限や最大アイドル時間をエントリーに割り当てることができます。これらの時間を超えるエントリーは無効として扱われ、削除されます。期限切れのエントリーがエビクトされたエントリーと同様にパッシベートされない場合(パッシベーションがオンの場合)。
エビクションとは異なり、期限切れのエントリーはメモリー、キャッシュストア、およびクラスター全体で削除されます。
デフォルトでは、作成されたエントリーは偽装で、ライフスパンや最大アイドル時間はありません。キャッシュ API を使用すると、mortal エントリーは、有効期限または最大アイドル時間で作成できます。さらに、<* -cache /> 設定セクションに要素を追加<expiration /> http://docs.jboss.org/infinispan/9.4.0/configdocs/infinispan-config-9.4.0.html することで、デフォルトのライフスパンや最大アイドル時間を設定 できます。
エントリーが期限切れになると、ユーザー要求によって再度アクセスされるまで、データコンテナーまたはキャッシュストアに置かれます。期限切れリーパーも、期限切れのエントリーを確認し、設定可能なミリ秒単位で削除します。
reaper-interval 属性または ExpirationConfigurationBuilder クラスの enableReaper メソッドを使用して、有効期限を宣言的に有効にできます。
- キャッシュストアが存在する場合、有効期限リーパーを無効にすることはできません。
- クラスター化されたキャッシュで最大アイドル時間を使用する場合、期限切れリーパーを常に有効にする必要があります。詳細は、「 Clustered Max Idle 」を参照してください。
4.2.1. エビクションと有効期限の違い リンクのコピーリンクがクリップボードにコピーされました!
エビクションと有効期限はいずれも未使用のエントリーのキャッシュをクリーンアップすることを目的としているため、OutOfMemory 例外からヒープを保護するため、違いを簡単に説明できるようになりました。
エビクション では、キャッシュに保持する エントリーの最大数 を設定し、この制限を超えると、選択した エビクションストラテジー (LRU、LIRS など)に基づいて一部の候補が削除される可能性があります。エビクションは、キャッシュストアへのエビクションであるパッシベーションと連携するように設定できます。
有効期限 では、エントリーの 時間基準 を設定し て、キャッシュに保持する期間 を指定します。
- 有効期間
-
エントリーが期限切れになる前にキャッシュに残っている期間を指定します。デフォルト値は
-1で、無制限の時間です。 - 最大アイドル時間
-
エントリーが期限切れになる前にアイドル状態でいられる期間を指定します。キーで操作が実行されない場合には、キャッシュ内のエントリーはアイドル状態になります。デフォルト値は
-1で、無制限の時間です。