我在API文档中找不到答案,这就是我想在这里问的原因:
鉴于我有一个cache2k缓存
import org.cache2k.Cache;
import org.cache2k.CacheBuilder;
import java.util.concurrent.TimeUnit;
....
Cache<String, Integer> cache =
CacheBuilder.newCache(String.class, Integer.class)
.expiryDuration(1, TimeUnit.MINUTES)
并在其中放置一个项目
cache.put("item", 1)
此项目的到期时间为一分钟。 30秒后,我用
更新了这个项目cache.put("item", 0)
这个项目的到期时间现在大约是30秒还是1分钟?
非常感谢每一条有用的评论。也许我错过了文档中的答案,或者有一些我不了解的标准......
此致
globalworming
答案 0 :(得分:2)
到期时间是条目存储在缓存中的时间(例如,通过put或get()和read through),直到条目被认为已过期。过期的条目不再有效,缓存不再返回。是否从内部缓存数据中删除过期的条目取决于其他配置。
某些缓存会在新条目和更新后的到期时间之间产生差异。在cache2k中,这是相同的。
因此,在第二次put()之后,重置到期并且该条目在一分钟后到期。