天天看點

ehcache緩存介紹

介紹

ehcache是一個開源、用來提高性能降低資料庫壓力并簡化可伸縮性的緩存庫。Ehcache是健全的、經過驗證的、全特性的、使用最廣泛的基于Java的緩存庫。
  它可以使用千兆級别的緩存,從進行中的單個或多個節點擴充到進行中/非進行中混合配置。當應用系統需要連貫的分布式緩存時,Ehcache使用開源的Terracotta服務陳列
           

特性

  • 快速和輕量級
    多年來,各種不同的性能測試已經表明Ehcache是最快的Java緩存之一。Ehcache的線程是為大規模的、高并發的系統設計的。
               
  • 可伸縮性
    為提供擴充到千兆位元組,提供記憶體和磁盤存儲。最大的Ehcache安裝使用幾百個緩存。調整大型多CPU伺服器的并發負載。線程安全和性能之間有一種拉力。Ehcache的線程初始時是粗粒度的,但已越來越多的使用doug lea的建議,來實作更高的性能。每個虛拟機中多個CacheManagers這使得完全不同的ehcache.xml的配置使用成為可能。          
     使用Terracotta架構擴充到幾百個節點(叢集節點)通過添加Terracotta,Ehcache可以擴充到任何使用場景。
               
  • 支援對象或序列化緩存
    非序列化的對象可以使用Ehcache中除DiskStore(磁盤存儲)和複制之外的所有部分。如果嘗試去存儲或複制對象,一個警告級别的日志消息會出現。除了元素傳回的方法(擷取緩存元素,可了解為資料)不同外,對象和序列化的API是一緻的。
     Ehcache提供LRU-最近最少使用、LFU-較少頻率使用和FIFO-先進先出三種緩存置換算法。
               
  • 提供記憶體和磁盤存儲
    Ehcache,像衆多的緩存解決方案一樣,提供高性能的記憶體和磁盤存儲。線上時間、下線時間、記憶體和磁盤中的最大容量等配置,可以通過變換緩存配置對象在運作時做調整。
               
  • 可擴充性
    Ehcache提供CacheManage事件監聽和Cache事件監聽接口,配置在ehcache.xml中的接口實作可以被插入。
     同伴發現,插入複制器和監聽器
     Ehcache分布式緩存包含很多選擇和權衡。實作者可以使用内建機制或編寫自己的實作。
     可插入緩存擴充
     可插入緩存加載器
     可插入緩存異常處理器
               
  • 應用持久化

    VM重新開機時,持久化存儲到存儲資料的磁盤,當應用啟動時,緩存資料可以使用。需要時Flush到磁盤

  • 監聽器

    CacheManager監聽器通過CacheManagerEventListener接口注冊CacheManager監聽器。

  • JMX

    Ehcache可使用JMX管理如下MBeans:

    CacheManager 緩存管理器

    Cache 緩存

    CacheConfiguration 緩存配置

    CacheStatistics 緩存統計

  • 分布式緩存
    全面支援高性能、靈活、可擴充的分布式緩存。
    分布式緩存包含的選項:
    通過Terracotta使用叢集緩存:在Ehcache中安裝和使用Terracotta隻需要兩行必須的配置,為調整緩存行為和性能提供很多選項。
               
  • 緩存伺服器
    Ehcache提供緩存伺服器,通過WAR包(相容大多數Web容器)或獨立伺服器。緩存伺服器有兩套API接口:面向RESTful資源和SOPA。這兩套API均支援用戶端使用任何的程式設計語言。
               

繼續閱讀