在開發高併發量,高性能的網站應用系統時,緩存Cache起到了很是重要的做用。本文主要介紹EHCache的使用,以及使用EHCache的實踐經驗。html
一、配置ehcache.xml,不配置將使用默認,建議配置!java
<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>
各配置參數的含義:
maxElementsInMemory:緩存中容許建立的最大對象數
eternal:緩存中對象是否爲永久的,若是是,超時設置將被忽略,對象從不過時。
timeToIdleSeconds:緩存數據的鈍化時間,也就是在一個元素消亡以前,兩次訪問時間的最大時間間隔值,這隻能在元素不是永久駐留時有效,若是該值是0 就意味着元素能夠停頓無窮長的時間。
timeToLiveSeconds:緩存數據的生存時間,也就是一個元素從構建到消亡的最大時間間隔值,這隻能在元素不是永久駐留時有效,若是該值是0就意味着元素能夠停頓無窮長的時間。
overflowToDisk:內存不足時,是否啓用磁盤緩存。算法
diskPersistent 是否持久化磁盤緩存,當這個屬性的值爲true時,系統在初始化時會在磁盤中查找文件名爲cache名稱,後綴名爲index的文件
緩存
memoryStoreEvictionPolic併發
若是應用須要配置多個不一樣命名並採用不一樣參數的Cache,能夠相應修改配置文件,增長鬚要的Cache配置便可。
高併發
二、測試代碼性能
// 使用默認配置文件建立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是否生成緩存