cache2k put()是否更新到期时间

时间:2015-09-16 14:14:55

标签: java caching cache2k

我在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

1 个答案:

答案 0 :(得分:2)

到期时间是条目存储在缓存中的时间(例如,通过put或get()和read through),直到条目被认为已过期。过期的条目不再有效,缓存不再返回。是否从内部缓存数据中删除过期的条目取决于其他配置。

某些缓存会在新条目和更新后的到期时间之间产生差异。在cache2k中,这是相同的。

因此,在第二次put()之后,重置到期并且该条目在一分钟后到期。