1. 程式人生 > >配置檔案ehcache.xml詳解(1)—

配置檔案ehcache.xml詳解(1)—

ehcache.xml中Cache部分的配置說明:

以下是cache部分最主要的配置, <!-- Cache configuration ===================
The following attributes are required.
以下屬性是必須的 nameCache的唯一標識名稱(快取區名稱,用以區別快取區,必須唯一)     Sets the name of the cache. This is used to identify the cache. It must be unique. maxEntriesLocalHeap:設定快取在本地記憶體中最大快取項數量,0沒有限制
    Sets the maximum number of objects that will be created in memory.  0 = no limit.     In practice no limit means Integer.MAX_SIZE (2147483647) unless the cache is distributed     with a Terracotta server in which case it is limited by resources. maxEntriesLocalDisk:磁碟中的最大物件數,預設為0不限制     Sets the maximum number of objects that will be maintained in the DiskStore
    The default value is zero, meaning unlimited. eternal:elements是否永久有效,如果為true,timeouts將被忽略,element將永不過期     Sets whether elements are eternal. If eternal,  timeouts are ignored and the     element is never expired.
The following attributes and elements are optional.
以下屬性是可選的

overflowToOffHeap:
只能用於企業版本中。設定為true,快取將使用非堆記憶體,非堆記憶體並非由java管理,與java垃圾回收無關。預設為false。     (boolean) This feature is available only in enterprise versions of Ehcache.     When set to true, enables the cache to utilize off-heap memory storage to improve performance. Off-heap memory is not subject to Java GC. The default value is false. maxBytesLocalHeap:如果設定了這個屬性,maxEntriesLocalHeap將不能被利用(定義儲存在java虛擬機器堆記憶體中的最大位元組數)     Defines how many bytes the cache may use from the VM's heap. If a CacheManager maxBytesLocalHeap has been defined, this Cache's specified amount will be subtracted from the CacheManager. Other caches will share the remainder.     This attribute's values are given as <number>k|K|m|M|g|G for kilobytes (k|K), megabytes (m|M), or gigabytes (g|G).     For example, maxBytesLocalHeap="2g" allots 2 gigabytes of heap memory.     If you specify a maxBytesLocalHeap, you can't use the maxEntriesLocalHeap attribute.     maxEntriesLocalHeap can't be used if a CacheManager maxBytesLocalHeap is set.     Elements put into the cache will be measured in size using net.sf.ehcache.pool.sizeof.SizeOf     If you wish to ignore some part of the object graph, see net.sf.ehcache.pool.sizeof.annotations.IgnoreSizeOf maxBytesLocalOffHeap:只能用於企業版本中(設定本快取區使用的非堆記憶體的大小。指定此屬性,將預設設定overflowToOffHeap為true。如果特別指定了overflowToOffHeap=false,將禁止使用非堆記憶體     This feature is available only in enterprise versions of Ehcache.     Sets the amount of off-heap memory this cache can use, and will reserve.
    This setting will set overflowToOffHeap to true. Set explicitly to false to disable overflow behavior.     Note that it is recommended to set maxEntriesLocalHeap to at least 100 elements     when using an off-heap store, otherwise performance will be seriously degraded,and a warning will be logged.     The minimum amount that can be allocated is 128MB. There is no maximum.

maxBytesLocalDisk:像maxBytesLocalHeap屬性,不過指定得是儲存在本地磁碟上的快取項最大可使用的位元組數     As for maxBytesLocalHeap, but specifies the limit of disk storage this cache will ever use. timeToIdleSeconds:失效前的空閒秒數,當eternal為false時,這個屬性才有效,0為不限制     Sets the time to idle for an element before it expires.     i.e. The maximum amount of time between accesses before an element expires Is only used if the element is not eternal.     Optional attribute. A value of 0 means that an Element can idle for infinity.     The default value is 0. timeToLiveSeconds:失效前的存活秒數,建立時間到失效時間的間隔為存活時間,當eternal為false時,這個屬性才有效,0為不限制     Sets the time to live for an element before it expires.     i.e. The maximum time between creation time and when an element expires.     Is only used if the element is not eternal.     Optional attribute. A value of 0 means that and Element can live for infinity.     The default value is 0. diskExpiryThreadIntervalSeconds:清理儲存在磁碟上的過期快取專案的執行緒的啟動時間間隔,預設120秒。     The number of seconds between runs of the disk expiry thread. The default value is 120 seconds. diskSpoolBufferSizeMB:這個引數設定DiskStore(磁碟快取)的快取區大小。預設是30MB。每個Cache都應該有自己的一個緩衝區(寫入磁碟的內容將快取在此區域,使用非同步的方式寫入磁碟;如果遇到OutOfMemory錯誤時,可以嘗試減小這個值。改進磁碟寫入效能時,嘗試增加這個值;將日誌級別開到trace,當DiskStore執行磁碟寫入時,可以看到對應日誌     This is the size to allocate the DiskStore for a spool buffer. Writes are made to this area and then asynchronously written to disk. The default size is 30MB.     Each spool buffer is used only by its cache. If you get OutOfMemory errors consider lowering this value. To improve DiskStore performance consider increasing it. Trace level logging in the DiskStore will show if put back ups are occurring. clearOnFlush:當呼叫flush()是否清除快取,預設是true,即清空。     whether the MemoryStore should be cleared when flush() is called on the cache.     By default, this is true i.e. the MemoryStore is cleared. statistics:是否收集統計資訊。如果需要監控快取使用情況,應該開啟這個選項。預設為關閉(統計會影響效能)。設定statistics="true"開啟統計     Whether to collect statistics. Note that this should be turned on if you are using the Ehcache Monitor. By default statistics is turned off to favour raw performance.     To enable set statistics="true" memoryStoreEvictionPolicy:記憶體回收策略(當快取項達到maxEntriesLocalHeap限制時,剔除快取項的策略),預設回收策略是:LRU最近最少使用Least Recently Used,其他策略有:先進先出First In First Out,Less Frequently Used使用頻率最低     Policy would be enforced upon reaching the maxEntriesLocalHeap limit. Default     policy is Least Recently Used (specified as LRU). Other policies available -     First In First Out (specified as FIFO) and Less Frequently Used     (specified as LFU) copyOnRead:當快取項被讀出時,是否返回一份它的拷貝(返回物件是快取中物件的拷貝)。預設fasle。     Whether an Element is copied when being read from a cache.     By default this is false. copyOnWrite:當快取項被寫入時,是否寫入一份它的拷貝(寫入快取的是寫入物件的拷貝)。預設false     Whether an Element is copied when being added to the cache.     By default this is false.     Cache persistence is configured through the persistence sub-element.  The attributes of the     persistence element are: 通過使用< persistence />子元素,可以配置快取區的持久化策略,主要屬性如下: strategy:配置快取區持久化的型別,可選值如下:     Configures the type of persistence provided by the configured cache.  This must be one of the following values:     * localRestartable -僅在使用Ehcache企業版時有效。啟動RestartStore,拷貝所有的快取項(包含堆和非堆中的)到磁碟中,此選項提供了快取快速重啟能力以及對磁碟上快取的容錯能力)Enables the RestartStore and copies all cache entries (on-heap and/or off-heap) to disk. This option provides fast restartability with fault tolerant cache persistence on disk.     It is available for Enterprise Ehcache users only.     * localTempSwap (當快取容量達到上線時,將快取物件(包含堆和非堆中的)交換到磁碟中。“ localTempSwap”並不持久化快取內容)Swaps cache entries (on-heap and/or off-heap) to disk when the cache is full.     "localTempSwap" is not persistent.     * none (不持久化快取內容)Does not persist cache entries.     * distributed (按照<terracotta>標籤配置的持久化方式執行。非分散式部署時,此選項不可用Defers to the <terracotta> configuration for persistence settings. This option is not applicable for standalone.     The following example configuration shows a cache configured for localTempSwap restartability.     <cache name="persistentCache" maxEntriesLocalHeap="1000">         <persistence strategy="localTempSwap"/>     </cache>

synchronousWrites:此屬性僅在strategy=“localRestartable”時有意義。預設false。設定為true,快取寫入方法在快取項成功寫入磁碟前不會返回     When set to true write operations on the cache do not return until after the operations data has been successfully flushed to the disk storage.  This option is only valid when used with the "localRestartable" strategy, and defaults to false.