EhCache與Redis的比較

EhCache與Redis的比較(轉載)

1. 基本介紹

EhCache 是一個純Java的進程內緩存框架,具備快速、精幹等特色,是Hibernate中默認CacheProvider。Ehcache是一種普遍使用的開源Java分佈式緩存。主要面向通用緩存,Java EE和輕量級容器。它具備內存和磁盤存儲,緩存加載器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特色。redis

Spring 提供了對緩存功能的抽象:即容許綁定不一樣的緩存解決方案(如Ehcache),但自己不直接提供緩存功能的實現。它支持註解方式使用緩存,很是方便。數據庫

2. 主要的特性有:

  1. 快速
  2. 簡單
  3. 多種緩存策略
  4. 緩存數據有兩級:內存和磁盤,所以無需擔憂容量問題
  5. 緩存數據會在虛擬機重啓的過程當中寫入磁盤
  6. 能夠經過RMI、可插入API等方式進行分佈式緩存
  7. 具備緩存和緩存管理器的偵聽接口
  8. 支持多緩存管理器實例,以及一個實例的多個緩存區域
  9. 提供Hibernate的緩存實現

3. 集成

能夠單獨使用,通常在第三方庫中被用到的比較多(如mybatis、shiro等)ehcache 對分佈式支持不夠好,多個節點不能同步,一般和redis一塊使用api

4. ehcache 和 redis 比較

  • ehcache直接在jvm虛擬機中緩存,速度快,效率高;可是緩存共享麻煩,集羣分佈式應用不方便。緩存

  • redis是經過socket訪問到緩存服務,效率比ecache低,比數據庫要快不少,
    處理集羣和分佈式緩存方便,有成熟的方案。若是是單個應用或者對緩存訪問要求很高的應用,用ehcache。若是是大型系統,存在緩存共享、分佈式部署、緩存內容很大的,建議用redis。mybatis

ehcache也有緩存共享方案,不過是經過RMI或者Jgroup多播方式進行廣播緩存通知更新,緩存共享複雜,維護不方便;簡單的共享能夠,可是涉及到緩存恢復,大數據緩存,則不合適。框架

 

 

 

參考:ehcache入門基礎示例jvm

相關文章
相關標籤/搜索