EhCache
介绍
-
EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。
-
Spring 提供了对缓存功能的抽象:即允许绑定不同的缓存解决方案(如Ehcache),但本身不直接提供缓存功能的实现。它支持注解方式使用缓存,非常方便。
主要特性
- 快速
- 简单
- 多种缓存策略
- 缓存数据有两级:内存和磁盘,因此无需担心容量问题
- 缓存数据会在虚拟机重启的过程中写入磁盘
- 可以通过RMI、可插入API等方式进行分布式缓存
- 具有缓存和缓存管理器的侦听接口
- 支持多缓存管理器实例,以及一个实例的多个缓存区域
- 提供Hibernate的缓存实现
配置文件说明
diskStore
- path :指定磁盘存储的位置
defaultCache
默认的缓存
cache
自定的缓存,当自定的配置不满足实际情况时可以通过自定义(可以包含多个cache节点
)
name
: 缓存的名称,可以通过指定名称
获取指定的某个Cache对象
maxElementsInMemory
:内存中允许存储的最大的元素个数
,0代表无限
个clearOnFlush
:内存数量最大时是否清除
。eternal
:设置缓存中对象是否为永久
的,如果是,超时设置将被忽略
,对象从不过期。根据存储数据的不同,例如一些静态不变的数据如省市区等可以设置为永不过时timeToIdleSeconds
: 设置对象在失效前
的允许闲置
时间(单位:秒)。仅当eternal=false
对象不是
永久有效时使用
,可选属性,默认值是0,也就是可闲置时间无穷大
。timeToLiveSeconds
:缓存数据的生存时间
(TTL),也就是一个元素从构建到消亡的最大时间间隔值,这只能在元素不是永久驻留时有效,如果该值是0就意味着元素可以停顿无穷长的时间。(和上面的两者取最小值
)overflowToDisk
:内存不足时,是否启用磁盘
缓存。maxEntriesLocalDisk
:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。maxElementsOnDisk
:硬盘最大缓存个数。diskSpoolBufferSizeMB
:这个参数设置DiskStore(磁盘缓存
)的缓存区大小
。默认是30MB。每个Cache都应该有自己的一个缓冲区。diskPersistent
:是否在VM重启时存储硬盘的缓存数据
。默认值是false。
diskExpiryThreadIntervalSeconds
:磁盘失效线程
运行时间间隔,默认是120秒。memoryStoreEvictionPolicy
:当达到maxElementsInMemory
限制时,Ehcache将会根据指定的策略
去清理内存。默认策略是LRU(最近最少使用)
。你可以设置为FIFO(先进先出
)或是LFU(较少使用)
。clearOnFlush
:内存数量最大时是否清除。
来源:oschina
链接:https://my.oschina.net/wallenheng/blog/3190875