ehcache緩存配置與參數說明


 <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" />  

參數說明: 

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

以下屬性是必須的: 
name: Cache的名稱,必須是唯一的(ehcache會把這個cache放到HashMap里)。maxElementsInMemory:在內存中緩存的element的最大數目。 
eternal:設定緩存的elements是否永遠不過期。如果為true,則緩存的數據始終有效,如果為false那么還要根據timeToIdleSeconds,timeToLiveSeconds判斷。 
maxElementsInMemory:cache 中最多可以存放的元素的數量。如果放入cache中的元素超過這個數值,有兩種情況: 
1、若overflowToDisk的屬性值為true,會將cache中多出的元素放入磁盤文件中。 
2、若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 默認值).緩存的元素有一個時間戳,當緩存容量滿了,而又需要騰出地方來緩存新的元素的時候,那么現有緩存元素中時間戳離當前時間最遠的元素將被清出緩存。


免責聲明!

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



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