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はもう適用されないということですか?
timeToIdleSeconds
は、timeToIdleSeconds
より短い期間で要求されている限り、キャッシュされたオブジェクトを保持できるようにします。 timeToLiveSeconds
は、要求された回数または時間に関係なく、キャッシュされたオブジェクトをその秒数後に無効にします。
timeToIdleSeconds = 3
。その後、4秒間要求されなかった場合、オブジェクトは無効になります。
timeToLiveSeconds = 90
、その後、90秒後にオブジェクトがキャッシュから削除されます(90秒の短い寿命で数ミリ秒が要求された場合でも)。
両方を設定すると、expirationTime
はMath.min(ttlExpiry, ttiExpiry)
になります。
ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle
完全なソースコード こちら 。
古い1.1ドキュメント から(Google Cacheで利用できます。これは、現在のドキュメントよりも簡単に閲覧でき、有益です):
timeToIdleSeconds
これはオプションの属性です。
有効な値は、0〜Integer.MAX_VALUEの整数です。
これは、エレメントが最後に使用されてからエレメントが存続する秒数です。使用とは、挿入またはアクセスされることを意味します。
0には特別な意味があります。これは、エレメントがアイドル状態になる時間をチェックすることではありません。つまり、永久にアイドル状態になります。
デフォルト値は0です。
timeToLiveSeconds
これはオプションの属性です。
有効な値は、0〜Integer.MAX_VALUEの整数です。
エレメントが作成されてから存続する秒数です。 Createdは、Cache.putメソッドを使用してキャッシュに挿入されることを意味します。
0には特別な意味があります。これは、エレメントの存続時間をチェックすることではありません。つまり、永久に存続します。
デフォルト値は0です。