關於ehcache緩存中eternal及timeToLiveSeconds和timeToIdleSeconds的說明
阿新 • • 發佈:2019-02-24
也會 默認 mark png 時有 設置 沒有 連續 今天
今天發現開發項目啟動時有警告提示:cache ‘xx‘ is set to eternal but also has TTL/TTI set,發現是ehcache緩存設置沖突
所以決定在此mark一下,加深記憶,具體如下:
timeToLiveSeconds : 緩存自創建之時起至失效時的間隔時間單位為秒,默認為0,代表無限長,即緩存永不過期;
timeToIdleSeconds : 緩存創建以後,最後一次訪問緩存之時至失效之時的時間間隔,單位為秒,默認為0,永不過期;
eternal : 緩存是否永久有效(true/false)
當你配置了eternal屬性為true時,如果同時配置timeToLiveSeconds/timeToIdleSeconds不為0,則程序就會報以上警告
下面說說他們之間的關系:
eternal不多說,true表示緩存永久有效,false表示不為永久有效
主要是timeToLiveSeconds 和timeToIdleSeconds 之間的使用(單獨配置時,以上已說明)
舉例說明:timeToLiveSeconds =3600 timeToIdleSeconds =300
以上配置代表緩存有效時間為3600秒(自緩存建立起一個小時有效 ),在有效的一個小時內,如果連續五分鐘未訪問緩存,則緩存失效,特別說明的是,就算緩存訪問從未間斷,到一個小時後,緩存也會失效
---------------------
<!-- 短信緩存配置. 自動失效:最後一次訪問時間間隔100秒失效,若沒有訪問過自創建時間60秒失效。--> <cache name="smsCache" maxEntriesLocalHeap="3000" eternal="false" timeToIdleSeconds="100" timeToLiveSeconds="60" overflowToDisk="true" statistics="true"/>
關於ehcache緩存中eternal及timeToLiveSeconds和timeToIdleSeconds的說明