java - cache2k put()是否更新过期时间

标签 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 秒还是一分钟?

非常感谢每条有用的评论。也许我错过了文档中的答案或者有一些我不知道的标准......

问候

全局蠕虫

最佳答案

过期持续时间是条目存储在缓存中(例如通过 put 或 get() 并读取)到条目被视为过期之间的时间。过期条目不再有效,缓存不再返回。是否从内部缓存数据中删除过期条目取决于其他配置。

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

因此,在第二次 put() 之后,过期时间被重置,条目在一分钟后过期。

关于java - cache2k put()是否更新过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32611158/

相关文章:

java - 在 GraphQL (Apollo) 中转换 InputType 对象

java - 递归 id 生成返回错误值,但生成正确值?

php - MVC 的缓存层 - 模型还是 Controller ?

java - Apache Ignite 支持万级缓存吗?

c# - 从缓存列表查询 IQuery 返回 null 异常

java - 立即重新加载所有cache2k条目

java - Spring 社交Facebook : "The OAuth2 ' state' parameter doesn't match"

java - 如何在 Frege native 声明中声明 Java 枚举?

spring-boot - Spring Boot 测试尝试第二次初始化 cache2k 并失败

java - cache2k cachesource 使用 mysql 作为后端