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版本。这是个嵌入式数据库。能够确保存储安全和空间的利用率。