如何区分生存时间和闲置时间

关于 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.

我了解 时间慢慢流逝

但这是否意味着在创建和首次访问缓存项之后,TimeToLiveSecond就不再适用了呢?

65486 次浏览

timeToIdleSeconds允许将缓存对象保存在内,只要它的请求周期短于 timeToIdleSecondstimeToLiveSeconds将使缓存的对象在那么多秒之后失效,而不管它被请求了多少次或什么时候。

假设 timeToIdleSeconds = 3。如果4秒内没有被请求,那么对象将失效。

如果是 timeToLiveSeconds = 90,那么对象将在90秒后从缓存中删除,即使在其短暂生命周期的90秒中被请求了几毫秒。

old 1.1 documentation(可在谷歌缓存,这是更容易浏览和更多的信息比目前的文档 AFAIK) :

时间慢慢流逝

这是一个可选属性。

Legal values are integers between 0 and Integer.MAX_VALUE.

它是一个元素应该存活的秒数 最后使用。使用的手段插入或访问。

0有一个特殊的含义,即不检查 Element 是否有时间 空闲,也就是说它将永远空闲。

默认值为0。

TimeToLiveSecond

这是一个可选属性。

合法值是0和 Integer.MAX _ VALUE 之间的整数。

It is the number of seconds that an Element should live since it was Created 方法使用 Cache.put 插入到缓存中 方法。

0有一个特殊的含义,即不检查 Element 是否有时间 活着,也就是说它将永远活着。

默认值为0。

If you set both, the expirationTime will be Math.min(ttlExpiry, ttiExpiry), where

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

完整源代码 here