EhCache使用心得
在開發高并發量,高性能的網站應用系統時,緩存Cache起到了非常重要的作用。本文主要介紹EHCache的使用,以及使用EHCache的實踐經驗。
1、配置ehcache.xml,不配置將使用默認,建議配置!
<ehcache updateCheck="false" dynamicConfig="false">
<diskStore path="D:/test/ehcache"/>
<defaultCache
maxElementsInMemory="1000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
/><cache name="topCache" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="60" timeToLiveSeconds="60" overflowToDisk="true"
/>
<cache name="msgCache"
maxElementsInMemory="10"
eternal="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="true"
/>
</ehcache> </pre>然后將文件防止在項目的src目錄下,因為下面在創建CacheManager沒有指定ehcache.xml路徑,那么將使用默認classpath目錄下的。各配置參數的含義:
maxElementsInMemory:緩存中允許創建的最大對象數
eternal:緩存中對象是否為永久的,如果是,超時設置將被忽略,對象從不過期。
timeToIdleSeconds:緩存數據的鈍化時間,也就是在一個元素消亡之前,兩次訪問時間的最大時間間隔值,這只能在元素不是永久駐留時有效,如果該值是0 就意味著元素可以停頓無窮長的時間。
timeToLiveSeconds:緩存數據的生存時間,也就是一個元素從構建到消亡的最大時間間隔值,這只能在元素不是永久駐留時有效,如果該值是0就意味著元素可以停頓無窮長的時間。
overflowToDisk:內存不足時,是否啟用磁盤緩存。diskPersistent 是否持久化磁盤緩存,當這個屬性的值為true時,系統在初始化時會在磁盤中查找文件名為cache名稱,后綴名為index的文件
memoryStoreEvictionPolic
y:緩存滿了之后的淘汰算法。LRU和FIFO算法這里就不做介紹。LFU算法直接淘汰使用比較少的對象,在內存保留的都是一些經常訪問的對象。對于大部分網站項目,該算法比較適用。
如果應用需要配置多個不同命名并采用不同參數的Cache,可以相應修改配置文件,增加需要的Cache配置即可。
2、測試代碼