1. 程式人生 > >關於ehcache緩存中eternal及timeToLiveSeconds和timeToIdleSeconds的說明

關於ehcache緩存中eternal及timeToLiveSeconds和timeToIdleSeconds的說明

也會 默認 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的說明