首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ehcache 核心功能與配置詳解:從單機到分散式快取

     編輯:Java 相關知識

簡介

Ehcache 起源於 Hibernate,現為功能最完整、發展最活躍的 Java 快取框架,支援:

  • 標準記憶體/磁碟快取
  • 分散式快取(RMI / JGroups / JMS)
  • Web 頁面片段快取
  • 中央快取伺服器模式(類 Memcached)

核心配置項(ehcache.xml)

1. 記憶體最大物件數

<cache maxElementsInMemory="10000" />

必填,預設 10000。

2. 過期與淘汰策略

  • eternal="true":永不過期,忽略時間設定。
  • timeToIdleSeconds:最大閒置秒數,0 為永不。
  • timeToLiveSeconds:最大存活秒數,0 為永不。
  • memoryStoreEvictionPolicy:LRU(預設)/ FIFO / LFU。
  • overflowToDisk:記憶體滿時是否持久化至磁碟。

3. 磁碟儲存設定

  • maxElementsOnDisk:磁碟最大物件數,0 為無限。
  • diskExpiryThreadIntervalSeconds:掃描過期間隔。
  • diskSpoolBufferSizeMB:寫入緩衝區大小。

4. 重啟持久化

diskPersistent="true":應用重啟時從磁碟載入快取,適用於低變動資料。

分散式快取配置(RMI 方式)

Peer Listener(本節點監聽)

<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" properties="hostName=localhost, port=40001, socketTimeoutMillis=2000" />

Peer Provider(遠端節點清單)

<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual, rmiUrls=//host2:40002/com.example.User|//host2:40002/com.example.Role" />

快取物件同步設定

<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory" properties="replicateAsynchronously=false, replicatePuts=false, replicateUpdatesViaCopy=false" />

建議:replicatePuts=false(因有過期機制),replicateUpdatesViaCopy=false(避免物件複製開銷與鎖爭用,改送失效通知)。

關閉鉤子

分散式或磁碟持久化環境需註冊關閉監聽器:

<listener><listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class></listener>

JMS 同步複寫

支援非快取節點(如批次程式)透過 JMS 發送 PUT/REMOVE/REMOVE_ALL 操作至叢集,提供標準化方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved