在開發高並發量,高性能的網站應用系統時,緩存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>
然后將文件防止在項目的src目錄下,因為下面在創建CacheManager沒有指定ehcache.xml路徑,那么將使用默認classpath目錄下的。
各配置參數的含義:
maxElementsInMemory:緩存中允許創建的最大對象數
eternal:緩存中對象是否為永久的,如果是,超時設置將被忽略,對象從不過期。
timeToIdleSeconds:緩存數據的鈍化時間,也就是在一個元素消亡之前,兩次訪問時間的最大時間間隔值,這只能在元素不是永久駐留時有效,如果該值是0 就意味着元素可以停頓無窮長的時間。
timeToLiveSeconds:緩存數據的生存時間,也就是一個元素從構建到消亡的最大時間間隔值,這只能在元素不是永久駐留時有效,如果該值是0就意味着元素可以停頓無窮長的時間。
overflowToDisk:內存不足時,是否啟用磁盤緩存。
diskPersistent 是否持久化磁盤緩存,當這個屬性的值為true時,系統在初始化時會在磁盤中查找文件名為cache名稱,后綴名為index的文件
memoryStoreEvictionPolic
如果應用需要配置多個不同命名並采用不同參數的Cache,可以相應修改配置文件,增加需要的Cache配置即可。
2、測試代碼
// 使用默認配置文件創建CacheManager CacheManager manager = CacheManager.create(); // 通過manager可以生成指定名稱的Cache對象 Cache cache = cache = manager.getCache("msgCache"); 可以通過調用manager.removalAll()來移除所有的Cache。通過調用manager的shutdown()方法可以關閉CacheManager。 有了Cache對象之后就可以進行一些基本的Cache操作,例如: //往cache中添加元素 Element element = new Element("key", "value"); cache.put(element); //從cache中取回元素 Element element = cache.get("key"); System,out.println(element.getValue()); //從Cache中移除一個元素 cache.remove("key"); <pre name="code" class="java">// 使用manager移除指定名稱的Cache對象 manager.removeCache("msgCache");
打印結果 value
查看
D:/test/ehcache是否生成緩存