缓存初见——EhCache
生活随笔
收集整理的這篇文章主要介紹了
缓存初见——EhCache
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Ehcache簡介
Ehcache簡單使用
首先需要一個配置文件
<?xml version="1.0" encoding="UTF-8"?> <ehcache><!-- 指定一個文件目錄,當EhCache把數據寫到硬盤上時,將把數據寫到這個文件目錄下 --><diskStore path="java.io.tmpdir"/><!--cache元素的屬性:name:緩存名稱maxElementsInMemory:內存中最大緩存對象數maxElementsOnDisk:硬盤中最大緩存對象數,若是0表示無窮大eternal:true表示對象永不過期,此時會忽略timeToIdleSeconds和timeToLiveSeconds屬性,默認為falseoverflowToDisk:true表示當內存緩存的對象數目達到了maxElementsInMemory界限后,會把溢出的對象寫到硬盤緩存中。注意:如果緩存的對象要寫入到硬盤中的話,則該對象必須實現了Serializable接口才行。diskSpoolBufferSizeMB:磁盤緩存區大小,默認為30MB。每個Cache都應該有自己的一個緩存區。diskPersistent:是否緩存虛擬機重啟期數據diskExpiryThreadIntervalSeconds:磁盤失效線程運行時間間隔,默認為120秒timeToIdleSeconds: 設定允許對象處于空閑狀態的最長時間,以秒為單位。當對象自從最近一次被訪問后,如果處于空閑狀態的時間超過了timeToIdleSeconds屬性值,這個對象就會過期,EHCache將把它從緩存中清空。只有當eternal屬性為false,該屬性才有效。如果該屬性值為0,則表示對象可以無限期地處于空閑狀態timeToLiveSeconds:設定對象允許存在于緩存中的最長時間,以秒為單位。當對象自從被存放到緩存中后,如果處于緩存中的時間超過了 timeToLiveSeconds屬性值,這個對象就會過期,EHCache將把它從緩存中清除。只有當eternal屬性為false,該屬性才有效。如果該屬性值為0,則表示對象可以無限期地存在于緩存中。timeToLiveSeconds必須大于timeToIdleSeconds屬性,才有意義memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理內存。可選策略有:LRU(最近最少使用,默認策略)、FIFO(先進先出)、LFU(最少訪問次數)。--><!-- 設定緩存的默認數據過期策略 --><defaultCachemaxElementsInMemory="10000"eternal="false"overflowToDisk="true"timeToIdleSeconds="10"timeToLiveSeconds="20"diskPersistent="false"diskExpiryThreadIntervalSeconds="120"/><cache name="simpleCache"maxElementsInMemory="5"eternal="false"overflowToDisk="true"timeToIdleSeconds="10"timeToLiveSeconds="20"/></ehcache>簡單使用:
public static void main(String[] args) {CacheManager cacheManager = new CacheManager();Cache cache = cacheManager.getCache("simpleCache");for (int i = 0; i < 10; i++) {cache.put(new Element("key"+i, "value"+i));System.out.println("key"+i+ "=" +"value"+i);System.out.println(cache.getKeys());}System.out.println(cache.get("key1"));cacheManager.shutdown();}總結
以上是生活随笔為你收集整理的缓存初见——EhCache的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大规模1.4亿中文知识图谱数据ownth
- 下一篇: lei!