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