我正在尝试让EHCache将缓存元素标记为已过期,如果它们未在特定时间内以特定方式访问过。
我有一个自动缓存刷新器,它应该刷新缓存中的元素而不更新上次访问的时间。它定期运行。但是,如果用户通过应用程序从缓存请求某些内容,则应更新上次访问的时间。在用户不活动一周后,元素应该过期并从缓存中删除。
EHCache有没有可以解决此类问题的任何内容?我看到putQuiet和getQuiet方法,但我没有看到任何明确提及它们没有更新上次访问的时间。此外,timeToLiveSeconds和timeToIdleSeconds参数之间是否存在真正的差异?
谢谢, 麦克
答案 0 :(得分:2)
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
Is only used if the element is not eternal.
Optional attribute. A value of 0 means that an Element can idle for infinity.
The default value is 0.
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.
Is only used if the element is not eternal.
Optional attribute. A value of 0 means that and Element can live for infinity.
The default value is 0.
对于其他属性,请参阅ehcache包附带的ehcache.xml。您可以使用带有参数的Cache construtor实例化缓存,然后缓存将自行管理