一、简介
ehcache是一个比较成熟的java缓存框架,它提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案。
ehcache最早从hibernate发展而来。由于3.x的版本和2.x的版本API差异比较大。这里直接学习最新版本的了,但是最后整合spring的时候还是有2.x。
二、特性
1、快速轻量:不需要特别的配置,API易于使用,很容易部署上线和运行。很小的jar包,Ehcache 2.2.3才668kb。唯一的依赖就是SLF4J了。
2、伸缩性:缓存在内存和磁盘存储可以伸缩到数G,Ehcache为大数据存储做过优化。大内存的情况下,所有进程可以支持数百G的吞吐。为高并发和大型多CPU服务器做优化。
线程安全和性能总是一对矛盾,Ehcache的线程机制采用了Doug Lea的想法来获得较高的性能。单台虚拟机上支持多缓存管理器。通过Terracotta服务器矩阵,可以伸缩到数百个节点。
3、灵活性:提供了LRU、LFU和FIFO缓存淘汰算法,提供内存和磁盘存储;动态、运行时缓存配置,存活时间、空闲时间、内存和磁盘存放缓存的最大数目都是可以在运行时修改。
4、可扩展性:监听器可以插件化。
5、应用持久化:在JVM重启后,持久化到磁盘的存储可以复原数据(缓存