EhCache 是?个?较成熟的 Java 缓存框架,最早从 hibernate 发展?来, 是进程中的缓存系统,它提 供了?内存,磁盘?件存储,以及分布式存储?式等多种灵活的 cache 管理?案,快速简单。 Spring Boot 对 Ehcache 的使?提供?持,所以在 Spring Boot 中只需简单配置即可使? Ehcache 实现 数据缓存处理。 Spring Cache 相关注解说明 SpringBoot 缓存实现内部使? SpringCache 实现缓存控制,这?集成 Ehcache 实际上是对 SpringCache 抽象的其中?种实现,这?在使? Ehcache 实现缓存控制时相关注解说明如下:
1.在pomxml中引入依赖包
<!-- 引入缓存Ehcache依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
2.src/main/resources ?录下添加 ehcache.xml ?件
3.在启动??类中,添加 @EnableCaching 注解,启动缓存
4.. JavaBean 对象实现序列化
5.在.yml添加缓存配置
## Ehcache缓存配置
cache:
ehcache:
config: classpath:ehcache.xml
6.缓存配置解释
<!-- 是否保存到磁盘,当系统宕机时
<diskStore path="D:\cache"/>-->
<!--
name:缓存名称。
maxElementsInMemory:缓存最?数?
maxElementsOnDisk:硬盘最?缓存个数。
eternal:对象是否永久有效,?但设置了,timeout将不起作?。
overflowToDisk:是否保存到磁盘,当系统宕机时
timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。
仅当eternal=false对象不是永久有效时使?,可选属性,默认值是0,表示可闲置时间?穷?。
timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。
最?时间介于创建时间和失效时间之间。
仅当eternal=false对象不是永久有效时使?,默认是0,也就是对象存活时间?穷?。
diskPersistent:是否缓存虚拟机重启期数据
diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区??。
默认是30MB。每个Cache都应该有??的?个缓冲区。
diskExpiryThreadIntervalSeconds:磁盘失效线程运?时间间隔,默认是120秒。
memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,会根据指定的策略去清理内
存
默认策略是LRU(最近最少使?)。你可以设置为FIFO(先进先出)或是LFU(较少使?)。
clearOnFlush:内存数量最?时是否清除。
memoryStoreEvictionPolicy:
可选策略有:
LRU(最近最少使?,默认策略)
Less Frequently Used,就是例?中使?的策略,就是?直以来最少被使?的。
FIFO(先进先出)
first in first out,这个是?家最熟的,先进先出。
LFU(最少访问次数)
Least Recently Used,最近最少使?的。
缓存的元素有?个时间戳,当缓存容量满了,??需要腾出地?来缓存新的元素的时候,
那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。
-->
|