
最为广泛使用的纯Java开发的轻量级本地缓存框架。
Ehcache架构图

它的缓存介质涵盖堆内存(heap)、堆外内存(BigMemory商用版本支持)和磁盘,各介质可独立设置属性和策略。 Ehcache最初是独立的本地缓存框架,随着发展,结合Terracotta服务阵列模型,可支持分布式缓存集群,主要有RMI、JGroups、JMS和Cache Server等传播方式进行节点间通信,如架构图左侧部分。
数据流转生命周期

L1:本地内存层,L2:Terracotta服务节点层
虽然Ehcache支持磁盘持久化,但由于存在两级缓存介质。 在一级内存中的缓存,如果没有主动刷入磁盘,应用异常时依然会出现缓存数据丢失。 可按需将缓存刷到磁盘,将缓存刷到磁盘的操作cache.flush()。 对象的磁盘写入,前提是要将对象序列化。