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 不会发生变化。这是因为我们在添加条目时计算过期时间戳。而不是一直重新应用持续时间。出于性能原因。
我正在从 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 不会发生变化。这是因为我们在添加条目时计算过期时间戳。而不是一直重新应用持续时间。出于性能原因。