Ehcache3获取生存时间配置

Ehcache3 get time-to-live configuration

我正在从 Ehcache2.X 过渡到 Ehcache3.3.1,但我找不到在 运行 时间获取缓存的生存时间配置的方法。以前我用过: cache.getCacheConfiguration().getTimeToLiveSeconds()

现在,看来我需要做一些类似于: cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation().getLength()

但是,getExpiryForCreation() 需要特定元素的键值对,并且 return 显示该元素的持续时间。

我是否遗漏了 API 或文档中的内容?

我会post在这里给出与 ehcache 邮件列表中相同的答案。

过期实现可以非常动态,select 使用给定的缓存键和值的过期时间。

如果你知道你做了类似的事情 Expirations.timeToLiveExpiration(Duration.of(20, TimeUnit.SECONDS)) 创建它,然后,它不会是动态的。所以你可以做 cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation(null, null) 获取创建后缓存条目的持续时间。

如果您随后想要动态更改 TTL,这是可能的,但您需要提供自己的 Expiry 实现(并不难做到)。 TTL 为 setter。

但是,新值将仅适用于新添加的条目。现有条目的 TTL 不会发生变化。这是因为我们在添加条目时计算过期时间戳。而不是一直重新应用持续时间。出于性能原因。