簡體   English   中英

ehcache3獲得生存時間配置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM