Ehcache配置詳解及CacheManager使用


<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<!--timeToIdleSeconds 當緩存閑置n秒后銷毀 -->
<!--timeToLiveSeconds 當緩存存活n秒后銷毀 -->
<!--
緩存配置
       name:緩存名稱。
       maxElementsInMemory:緩存最大個數。
       eternal:對象是否永久有效,一但設置了,timeout將不起作用。
       timeToIdleSeconds:設置對象在失效前的允許閑置時間(單位:秒)。僅當eternal=false對象不是永久有效時使用,可選屬性,默認值是0,也就是可閑置時間無窮大。
       timeToLiveSeconds:設置對象在失效前允許存活時間(單位:秒)。最大時間介於創建時間和失效時間之間。僅當eternal=false對象不是永久有效時使用,默認是0.,也就是對象存活時間無窮大。
       overflowToDisk:當內存中對象數量達到maxElementsInMemory時,Ehcache將會對象寫到磁盤中。
       diskSpoolBufferSizeMB:這個參數設置DiskStore(磁盤緩存)的緩存區大小。默認是30MB。每個Cache都應該有自己的一個緩沖區。
       maxElementsOnDisk:硬盤最大緩存個數。
       diskPersistent:是否緩存虛擬機重啟期數據 Whether the disk store persists between restarts of the Virtual Machine. The default value is false.
       diskExpiryThreadIntervalSeconds:磁盤失效線程運行時間間隔,默認是120秒。
       memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理內存。默認策略是LRU(最近最少使用)。你可以設置為FIFO(先進先出)或是LFU(較少使用)。
       clearOnFlush:內存數量最大時是否清除。
-->

Java代碼   收藏代碼
  1. <diskStore path="java.io.tmpdir" />   
  2. <defaultCache   
  3.   maxElementsInMemory="500"   
  4.   eternal="false"   
  5.   timeToIdleSeconds="300"   
  6.   timeToLiveSeconds="1200"   
  7.   overflowToDisk="true" />   
  8.     <cache name="com.Menu" maxElementsInMemory="150" eternal="false" timeToLiveSeconds="36000" timeToIdleSeconds="3600" overflowToDisk="true"/>   
  9. </ehcache>  



EhcacheUtil工具類使用:

Java代碼   收藏代碼
    1. public class EhcacheUtil {  
    2.   
    3.     private static final String path = "/ehcache.xml";  
    4.   
    5.     private URL url;  
    6.   
    7.     private CacheManager manager;  
    8.   
    9.     private static EhcacheUtil ehCache;  
    10.   
    11.     private EhcacheUtil(String path) {  
    12.         url = getClass().getResource(path);  
    13.         manager = CacheManager.create(url);  
    14.     }  
    15.   
    16.     public static EhcacheUtil getInstance() {  
    17.         if (ehCache== null) {  
    18.             ehCache= new EhcacheUtil(path);  
    19.         }  
    20.         return ehCache;  
    21.     }  
    22.   
    23.     public void put(String cacheName, String key, Object value) {  
    24.         Cache cache = manager.getCache(cacheName);  
    25.         Element element = new Element(key, value);  
    26.         cache.put(element);  
    27.     }  
    28.   
    29.     public Object get(String cacheName, String key) {  
    30.         Cache cache = manager.getCache(cacheName);  
    31.         Element element = cache.get(key);  
    32.         return element == null ? null : element.getObjectValue();  
    33.     }  
    34.   
    35.     public Cache get(String cacheName) {  
    36.         return manager.getCache(cacheName);  
    37.     }  
    38.   
    39.     public void remove(String cacheName, String key) {  
    40.         Cache cache = manager.getCache(cacheName);  
    41.         cache.remove(key);  
    42.     }  
    43.   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM