ehcache配置詳解

<?xml version="1.0" encoding="UTF-8"?>  
<ehcache xmlns:xsi=""  
    xsi:noNamespaceSchemaLocation="" updateCheck="false">  
    <!--  
     | Please see  for  
     | detailed information on how to configurigure caches in this file  
     +-->  
    <!-- Location of persistent caches on disk -->      <diskStore path="java.io.tmpdir" />    
    <defaultCache eternal="false" maxElementsInMemory="3000"  
        overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0"  
        timeToLiveSeconds="43200" memoryStoreEvictionPolicy="LRU"/>    
    <cache name="allAreasCache" eternal="false"  
        maxElementsInMemory="3000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />            
    <cache name="areaDetailCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />             
    <cache name="allAppFormCateoryListCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />             
   <cache name="appFormCateoryListCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />               
    <cache name="oldAppFormCateoryListCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
       timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />             
    <cache name="allAppFormCateorysCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />       
          
    <cache name="appFormCateorysCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
       timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />             
    <cache name="oldAppFormCateorysCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
      memoryStoreEvictionPolicy="LRU" />   
          
    <cache name="allAppFormCateoryDetailCache" eternal="false"  
        maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />             
    <cache name="appFormCateoryDetailCache" eternal="false"  
        maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="3600"  
        memoryStoreEvictionPolicy="LRU" />   
          
    <cache name="oldAppFormCateoryDetailCache" eternal="false"  
        maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="43200"  
        memoryStoreEvictionPolicy="LRU" />   
          
    <cache name="RMIApplicationFlowVosCache" eternal="false"  
        maxElementsInMemory="500" overflowToDisk="false" diskPersistent="false"  
        timeToIdleSeconds="0" timeToLiveSeconds="600"  
        memoryStoreEvictionPolicy="LRU" />      
</ehcache>

參數說明:

diskStore :指定數據存儲位置,可指定磁盤中的文件夾位置
defaultCache : 默認的管理策略

如下屬性是必須的:
name: Cache的名稱,必須是惟一的(ehcache會把這個cache放到HashMap裏)。maxElementsInMemory:在內存中緩存的element的最大數目。
eternal:設定緩存的elements是否永遠不過時。若是爲true,則緩存的數據始終有效,若是爲false那麼還要根據timeToIdleSeconds,timeToLiveSeconds判斷。
maxElementsInMemory:cache 中最多能夠存放的元素的數量。若是放入cache中的元素超過這個數值,有兩種狀況:
一、若overflowToDisk的屬性值爲true,會將cache中多出的元素放入磁盤文件中。
二、若overflowToDisk的屬性值爲false,會根據memoryStoreEvictionPolicy的策略替換cache中原有的元素。
overflowToDisk: 若是內存中數據超過內存限制,是否要緩存到磁盤上。
maxElementsOnDisk:在磁盤上緩存的element的最大數目,默認值爲0,表示不限制。

如下屬性是可選的:
timeToIdleSeconds: 對象空閒時間,指對象在多長時間沒有被訪問就會失效。只對eternal爲false的有效。默認值0,表示一直能夠訪問。以秒爲單位。
timeToLiveSeconds: 對象存活時間,指對象從建立到失效所須要的時間。只對eternal爲false的有效。默認值0,表示一直能夠訪問。以秒爲單位。
diskPersistent: 是否在磁盤上持久化。指重啓jvm後,數據是否有效。默認爲false。
diskExpiryThreadIntervalSeconds: 對象檢測線程運行時間間隔。標識對象狀態的線程多長時間運行一次。以秒爲單位。
diskSpoolBufferSizeMB: DiskStore使用的磁盤大小,默認值30MB。每一個cache使用各自的DiskStore。
memoryStoreEvictionPolicy: 若是內存中數據超過內存限制,向磁盤緩存時的策略。默認值LRU,可選FIFO、LFU。
緩存的3 種清空策略 :
FIFO ,first in first out (先進先出).
LFU , Less Frequently Used (最少使用).意思是一直以來最少被使用的。緩存的元素有一個hit 屬性,hit 值最小的將會被清出緩存。
LRU ,Least Recently Used(最近最少使用). (ehcache 默認值).緩存的元素有一個時間戳,當緩存容量滿了,而又須要騰出地方來緩存新的元素的時候,那麼現有緩存元素中時間戳離當前時間最遠的元素將被清出緩存。
java

相關文章
相關標籤/搜索