一、什么是Ehcache
Ehcache是纯java的开源缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。它主要面向通用缓存、Java EE和轻量级容器,具有内存和磁盘存储、缓存加载器、缓存扩展、缓存异常处理程序。
Ehcache最初由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然开源,但一些新的主要功能(例如,快速可重启性之间的一致性的)只能在商业产品中使用。
二、Ehcache的主要特性
- 快速轻量
诸多测试表明,Ehcache是最快的Java缓存之一。Ehcache的线程机制适用于大型高并发系统,大量性能测试显示Ehcache表现良好。 - 伸缩性
缓存在内存和磁盘中存储可以伸缩到数G,缓存服务器可以伸缩到数百个节点。 - 灵活性
Ehcache支持序列化API,具有完整的缓存淘汰算法,支持动态、运行时配置。 - 标准支持
提供了对JSR107 JCACHE API最完整的实现。 - 可扩展性
冗余其、监听器、缓存扩展、缓存加载器、缓存异常处理器都可以插件化。 - 持久化
可以通过持久化到磁盘的存储恢复数据。 - 开源
Apache 2.0 license
三、Ehcache架构设计
图1 Ehcache架构
四、一致性模型
- 强一致性模型
强一致性(strict consistency),也称为原子一致性(atomic consistency)或者线性(Linearizability)。强一致性模型要求某个数据被成功更新