hibernate二級緩存研究實驗結論
一、二級緩存基本說明:1、ehcache.xml配置說明,開發(fā)中放在src下元素:指定一個文件目錄,當指定的內存不夠時,把數(shù)據(jù)寫到硬盤上時,將把數(shù)據(jù)寫到這個文件目錄下。 下面的參數(shù)這樣解釋: u
一、二級緩存基本說明:
1、ehcache.xml配置說明,開發(fā)中放在src下
user.home – 用戶主目錄
user.dir – 用戶當前工作目錄
java.io.tmpdir – 默認臨時文件路徑
name:緩存名稱。通常為緩存對象的類名(非嚴格標準),如果為實體對象的包名稱.類名稱時,那么實體的配置中可以省去
maxElementsInMemory:設置基于內存的緩存可存放對象的最大數(shù)目。
maxElementsOnDisk:設置基于硬盤的緩存可存放對象的最大數(shù)目。
eternal:如果為true,表示對象永遠不會過期,此時會忽略timeToIdleSeconds和timeToLiveSeconds屬性,默認為false;
timeToIdleSeconds: 設定允許對象處于空閑狀態(tài)的最長時間,以秒為單位。當對象自從最近一次被訪問后,如果處于空閑狀態(tài)的時間超過了timeToIdleSeconds屬性值,這個對象就會過期。當對象過期,EHCache將把它從緩存中清空。只有當eternal屬性為false,該屬性才有效。如果該屬性值為0,則表示對象可以無限期地處于空閑狀態(tài)。
timeToLiveSeconds:設定對象允許存在于緩存中的最長時間,以秒為單位。當對象自從被存放到緩存中后,如果處于緩存中的時間超過了 timeToLiveSeconds屬性值,這個對象就會過期。當對象過期,EHCache將把它從緩存中清除。只有當eternal屬性為false,該屬性才有效。如果該屬性值為0,則表示對象可以無限期地存在于緩存中。timeToLiveSeconds必須大于timeToIdleSeconds屬性,才有意義。
overflowToDisk:如果為true,表示當基于內存的緩存中的對象數(shù)目達到了maxElementsInMemory界限后,會把益出的對象寫到基于硬盤的緩存中。注意:如果緩存的對象要寫入到硬盤中的話,則該對象必須實現(xiàn)了Serializable接口才行。
diskPersistent:是否在磁盤上持久化。指重啟jvm后,數(shù)據(jù)是否有效。默認為false。
diskExpiryThreadIntervalSeconds:對象檢測線程運行時間間隔。標識對象狀態(tài)的線程多長時間運行一次。
diskSpoolBufferSizeMB:DiskStore使用的磁盤大小,默認值30MB。每個cache使用各自的DiskStore。
memoryStoreEvictionPolicy:緩存對象清除策略。有三種:
a、 FIFO ,first in first out ,這個是大家最熟的,先進先出,不多講了
b、 LFU , Less Frequently Used ,就是上面例子中使用的策