ehcache各個引數詳解
-----------------------------------------快取設定大小-------------------------------------------------------- 快取大小的限制可以設定在CacheManager上,也可以設定在單個的Cache上。我們可以設定快取使用記憶體的大小,也可以設定快取使用磁碟的大小,但是使用堆記憶體的大小是必須設定的,其它可設可不設,預設不設就是無限制。 一:CacheManager級別:CacheManager級別有三個屬性分別用來限制儲存器快取資訊的大小,其控制的都是位元組數。 maxBytesLocalHeap:是用來限制快取所能使用的堆記憶體的最大位元組數的,其單位可以是K、M或G,不區分大小寫。預設為0,表示不限制。但是當我們沒有指定CacheManager級別的maxBytesLocalHeap時,我們必須在每一個cache上指定maxBytesLocalHeap或maxEntriesLocalHeap。 maxBytesLocalOffHeap
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
maxBytesLocalHeap="500M" maxBytesLocalOffHeap="2G" maxBytesLocalDisk="50G">
</ehcache>
二:Cache級別:在CacheManager上能夠指定的限制大小的引數在Cache級別都能使用。當我們在Cache級別指定了某種型別的限制大小後,該Cache將不再共享CacheManager內的該種限制了。 與CacheManager不同的是我們在Cache級別上指定maxBytesLocalHeap、maxBytesLocalOffHeap和maxBytesLocalDisk時還可以使用百分比的形式,前提是對應的限制在CacheManager上有指定。。需要注意的是我們所有Cache上指定的位元組數大小之和不能超過CacheManager上對應的限制大小;所有Cache上對應限制以百分比形式指定的和不能超過100%。此外,在Cache級別我們還可以利用兩個屬性來限制在堆記憶體或者是磁碟上快取元素的最大數,這兩個屬性是maxEntriesLocalHeap和maxEntriesLocalDisk,而對於非堆記憶體OffHeap的話是不能指定元素的最大數量的。 maxEntriesLocalHeap
快取的3種清空策略: FIFO:first in first out (先進先出) LFU:Less Frequency Used (最少使用)一直以來最少被使用的。快取的元素有一個hit屬性,hit值最小的將會被清除快取。 LRU:Least Recently Used(最近最少使用)(ehcache預設值)快取的元素有一個時間戳,當快取容量滿了,而又需要騰出地方來快取新的元素的時候,那麼現有快取元素中時間戳離當前時間最遠的元素將被清除快取。