1 <?xml version="1.0" encoding="gbk"?> 2 <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> 3
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>