如何在 ehcache 中区分生存时间和闲置时间

2022-08-31 09:28:43

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

我了解时间到IdleSeconds

但是,这是否意味着在创建并首次访问缓存项后,TimeToLiveSeconds不再适用?


答案 1

timeToIdleSeconds只要请求缓存对象的周期短于 ,就可以保留缓存对象。 将使缓存的对象在几秒钟后失效,无论请求多少次或何时。timeToIdleSecondstimeToLiveSeconds

假设.然后,如果 4 秒钟内未请求该对象,则该对象将失效。timeToIdleSeconds = 3

如果为 ,则该对象将在 90 秒后从缓存中删除,即使在其短暂生命周期的第 90 秒内已请求该对象几毫秒。timeToLiveSeconds = 90


答案 2

如果同时设置两者,则 将为 ,其中expirationTimeMath.min(ttlExpiry, ttiExpiry)

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

完整的源代码在这里


推荐