web-dev-qa-db-ja.com

ehcacheで存続時間とアイドル時間を区別する方法

Ehacheのドキュメントには次のように書かれています。

timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires

timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. The maximum time between creation time and when an element expires.

timeToIdleSecondsを理解しています

しかし、キャッシュアイテムの作成と最初のアクセスの後、timeToLiveSecondsはもう適用されないということですか?

98

timeToIdleSecondsは、timeToIdleSecondsより短い期間で要求されている限り、キャッシュされたオブジェクトを保持できるようにします。 timeToLiveSecondsは、要求された回数または時間に関係なく、キャッシュされたオブジェクトをその秒数後に無効にします。

timeToIdleSeconds = 3。その後、4秒間要求されなかった場合、オブジェクトは無効になります。

timeToLiveSeconds = 90、その後、90秒後にオブジェクトがキャッシュから削除されます(90秒の短い寿命で数ミリ秒が要求された場合でも)。

147
Boris Pavlović

両方を設定すると、expirationTimeMath.min(ttlExpiry, ttiExpiry)になります。

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

完全なソースコード こちら

39
Lee Chee Kiam

古い1.1ドキュメント から(Google Cacheで利用できます。これは、現在のドキュメントよりも簡単に閲覧でき、有益です):

timeToIdleSeconds

これはオプションの属性です。

有効な値は、0〜Integer.MAX_VALUEの整数です。

これは、エレメントが最後に使用されてからエレメントが存続する秒数です。使用とは、挿入またはアクセスされることを意味します。

0には特別な意味があります。これは、エレメントがアイドル状態になる時間をチェックすることではありません。つまり、永久にアイドル状態になります。

デフォルト値は0です。

timeToLiveSeconds

これはオプションの属性です。

有効な値は、0〜Integer.MAX_VALUEの整数です。

エレメントが作成されてから存続する秒数です。 Createdは、Cache.putメソッドを使用してキャッシュに挿入されることを意味します。

0には特別な意味があります。これは、エレメントの存続時間をチェックすることではありません。つまり、永久に存続します。

デフォルト値は0です。

22
Damo