ehcahe的介紹
EhCache 是一個純Java的進程內緩存框架,具備快速、精幹等特色,是Hibernate中默認的CacheProvider。Ehcache是一種普遍使用的開源Java分佈式緩存。主要面向通用緩存,Java EE和輕量級容器。它具備內存和磁盤存儲,緩存加載器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特色。java
EhCache 應用架構圖,下圖是 EhCache 在應用程序中的位置:算法
ehcahe的優勢
- 快速
- 簡單
- 緩存數據有兩級:內存和磁盤,所以無需擔憂容量問題
- 緩存數據會在虛擬機重啓的過程當中寫入磁盤
- 能夠經過RMI、可插入API等方式進行分佈式緩存
- 具備緩存和緩存管理器的偵聽接口
- 支持多緩存管理器實例,以及一個實例的多個緩存區域
- 提供Hibernate的緩存實現
- 多種緩存策略,Ehcache提供了對大數據的內存和硬盤的存儲,最近版本容許多實例、保存對象高靈活性、提供LRU、LFU、FIFO淘汰算法,基礎屬性支持熱配置、支持的插件多
ehcahe的缺點
- 使用磁盤Cache的時候很是佔用磁盤空間:這是由於DiskCache的算法簡單,該算法簡單也致使Cache的效率很是高。它只是對元素直接追加存儲。所以搜索元素的時候很是的快。若是使用DiskCache的,在很頻繁的應用中,很快磁盤會滿。
- 不能保證數據的安全:當忽然kill掉java的時候,可能會產生衝突,EhCache的解決方法是若是文件衝突了,則重建cache。這對於Cache數據須要保存的時候可能不利。固然,Cache只是簡單的加速,而不能保證數據的安全。若是想保證數據的存儲安全,可使用Bekeley DB Java Edition版本。這是個嵌入式數據庫。能夠確保存儲安全和空間的利用率。