Ehcache3获得生存时间配置

时间:2017-04-12 19:09:31

标签: java ehcache

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

现在看起来我需要做类似的事情: cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation().getLength()

但是,getExpiryForCreation()需要特定元素的键值对,并且似乎返回该元素的持续时间。

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

1 个答案:

答案 0 :(得分:1)

我将在这里发布与ehcache邮件列表相同的答案。

到期实施可以非常动态,并使用给定的缓存密钥和值选择到期时间。

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

如果您想要动态更改TTL,则可能需要提供自己的Expiry实现(不是很难)。使用TTL的setter。

但是,新值仅适用于新添加的条目。现有条目不会更改其TTL。这是因为我们计算添加条目时的到期时间戳。而不是一直重新应用持续时间。出于性能原因。