1 <?xml version="1.0" encoding="gbk"?> 2 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> 3 <!-- 緩存設置為磁盤緩存,防止重啟tomcat時,app要重新登錄 --> 4 <diskStore path="java.io.tmpdir"/> 5 <!-- 集群多台服務器中的緩存 6 注意每台要同步緩存的服務器的RMI通信socket端口都不一樣,在配置的時候注意設置--> 7 <cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" 8 properties="hostName=10.1.35.111, port=40001,socketTimeoutMillis=2000"/> 9 <!----> 10 <cacheManagerPeerProviderFactory 11 class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" 12 properties="peerDiscovery=manual, 13 hostName=10.1.35.111, 14 port=40002, 15 rmiUrls=//10.1.35.111:40001/BaseDataCache|//10.1.35.111:40002/BaseDataCache, 16 timeToLive=0" 17 /> 18 <!-- 19 <cacheManagerPeerProviderFactory 20 class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" 21 properties="peerDiscovery=automatic, multicastGroupAddress=230.0.0.1, 22 multicastGroupPort=4446, timeToLive=32"/> 23 --> 24 <!-- 25 搜索某個網段上的緩存:timeToLive 26 0是限制在同一個服務器,1是限制在同一個子網, 32是限制在同一個網站 27 ,64是限制在同一個region,128是限制在同一個大洲, 255是不限制 --> 28 29 <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="600" timeToLiveSeconds="86400" overflowToDisk="false"/> 30 <!-- 31 配置自定義緩存 32 maxElementsInMemory:緩存中允許創建的最大對象數 33 eternal:緩存中對象是否為永久的,如果是,超時設置將被忽略,對象從不過期。 34 timeToIdleSeconds:緩存數據的鈍化時間,也就是在一個元素消亡之前, 35 兩次訪問時間的最大時間間隔值,這只能在元素不是永久駐留時有效, 36 如果該值是 0 就意味著元素可以停頓無窮長的時間。 37 timeToLiveSeconds:緩存數據的生存時間,也就是一個元素從構建到消亡的最大時間間隔值, 38 這只能在元素不是永久駐留時有效,如果該值是0就意味著元素可以停頓無窮長的時間。 39 overflowToDisk:內存不足時,是否啟用磁盤緩存。 40 memoryStoreEvictionPolicy:緩存滿了之後的淘汰算法。 41 --> 42 <cache name="BaseDataCache" 43 maxElementsInMemory="10000" 44 eternal="false" 45 overflowToDisk="true" 46 timeToIdleSeconds="60000" 47 timeToLiveSeconds="600000" 48 memoryStoreEvictionPolicy="LFU"> 49 <!-- 50 RMI緩存分布同步查找 class使用net.sf.ehcache.distribution.RMICacheReplicatorFactory 51 這個工廠支持以下屬性: 52 replicatePuts=true | false – 當一個新元素增加到緩存中的時候是否要復制到其他的peers。默認是true。 53 replicateUpdates=true | false – 當一個已經在緩存中存在的元素被覆蓋時是否要進行復制。默認是true。 54 replicateRemovals= true | false – 當元素移除的時候是否進行復制。默認是true。 55 replicateAsynchronously=true | false – 復制方式是異步的指定為true時,還是同步的,指定為false時。默認是true。 56 replicatePutsViaCopy=true | false – 當一個新增元素被拷貝到其他的cache中時是否進行復制指定為true時為復制,默認是true。 57 replicateUpdatesViaCopy=true | false – 當一個元素被拷貝到其他的cache中時是否進行復制指定為true時為復制,默認是true。 58 asynchronousReplicationIntervalMillis=1000 59 --> 60 <!-- 監聽RMI同步緩存對象配置 注冊相應的的緩存監聽類,用於處理緩存事件,如put,remove,update,和expire --> 61 <cacheEventListenerFactory 62 class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" 63 properties="replicateAsynchronously=true, 64 replicatePuts=true, 65 replicatePutsViaCopy=true, 66 replicateUpdates=true, 67 replicateUpdatesViaCopy=true, 68 replicateRemovals=true "/> 69 </cache> 70 71 </ehcache>