[英]Ehcache3 get time-to-live configuration
我正在從Ehcache2.X過渡到Ehcache3.3.1,我找不到在運行時獲取緩存的生存時間配置的方法。 以前我使用過: cache.getCacheConfiguration().getTimeToLiveSeconds()
現在,看來我需要執行以下操作: cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation().getLength()
但是, getExpiryForCreation()
需要特定元素的鍵,值對,並且似乎返回該元素的持續時間。
我在API或文檔中缺少什么嗎?
我將在此處發布與ehcache郵件列表相同的答案。
Expiry實現可以非常動態,並使用給定的緩存鍵和值選擇到期時間。
如果您知道自己做了類似Expirations.timeToLiveExpiration(Duration.of(20, TimeUnit.SECONDS))
的創建操作,那么它就不會是動態的。 因此,您可以執行cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation(null, null)
以獲取創建后緩存條目的持續時間。
然后,如果您想動態更改TTL,則可以,但是您將需要提供自己的Expiry
實現(並非很難做到)。 帶有TTL的設置器。
但是,新值僅適用於新添加的條目。 現有條目不會看到其TTL更改。 這是因為我們在添加條目時計算了到期時間戳。 而不是一直重新應用持續時間。 出於性能原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.