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 不再适用了?
答案 0 :(得分:144)
timeToIdleSeconds
允许缓存对象在短于timeToIdleSeconds
的时间段内保留。 timeToLiveSeconds
将使缓存的对象在多秒后失效,无论多少次或何时被请求。
我们说timeToIdleSeconds = 3
。如果4秒钟内没有请求对象,则该对象将失效。
如果timeToLiveSeconds = 90
,那么该对象将在90秒后从缓存中删除,即使它在其短暂生命的第90秒中被请求了几毫秒。
答案 1 :(得分:37)
如果同时设置两者,则expirationTime
将为Math.min(ttlExpiry, ttiExpiry)
,其中
ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle
完整源代码here。
答案 2 :(得分:22)
来自old 1.1 documentation(在Google缓存中提供,比当前文档AFAIK更易于浏览和提供更多信息):
<强> timeToIdleSeconds 强>
这是一个可选属性。
合法值是介于0和Integer.MAX_VALUE之间的整数。
这是元素应该生存的秒数 最后使用。使用的意思是插入或访问。
0具有特殊含义,不检查Element的时间 闲着,即它会永远闲着。
默认值为0.
<强> timeToLiveSeconds 强>
这是一个可选属性。
合法值是介于0和Integer.MAX_VALUE之间的整数。
这是元素应该生存的秒数 创建。创建的均值使用Cache.put插入到缓存中 方法
0具有特殊含义,不检查Element的时间 活着,即永远活着。
默认值为0.