jvm缓存之Ehcache

maven导包:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>

在resources下创建ehcache配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false">
    <diskStore path="java.io.tmpdir/Tmp_EhCache" />

    <!-- 默认配置 -->
    <defaultCache maxElementsInMemory="5000" eternal="false"
                  timeToIdleSeconds="120" timeToLiveSeconds="120"
                  memoryStoreEvictionPolicy="LRU" overflowToDisk="false" />
    <!--自定义缓存配置-->
    <!--最大缓存时间   最大缓存数-->
    <cache name="baseCache" maxElementsInMemory="10000"
           maxElementsOnDisk="100000" />

</ehcache>
2.	       name:缓存名称。  
3.	       maxElementsInMemory:缓存最大个数。  
4.	       eternal:对象是否永久有效,一但设置了,timeout将不起作用。  
5.	       timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。  
6.	       timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。  
7.	       overflowToDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。  
8.	       diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。  
9.	       maxElementsOnDisk:硬盘最大缓存个数。  
10.	       diskPersistent:是否缓存虚拟机重启期数据 Whether the disk store persists between restarts of the Virtual Machine. The default value is false.  
11.	       diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。  
12.	       memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。  
13.	       clearOnFlush:内存数量最大时是否清除。  
14.	    

在mapper类中缓存需要缓存的数据:


 

service层:

controller层:切面日志文章链接https://blog.csdn.net/YFSREAD/article/details/81105963 (不看也么关系,不影响缓存,日志只是做了打印显示)

在启动类中开启启动缓存:

数据库值:

调用接口:http://localhost:8080/queryUserById?id=9 ,切面日志打印数据

返回数据

修改数据库:

再次调用接口:http://localhost:8080/queryUserById?id=9 ,第二次切面日志打印数据,直接从缓存中获取,没有访问数据库。

清除缓存(当使用多个缓存时,指定清除缓存):

猜你喜欢

转载自blog.csdn.net/yfsread/article/details/81106653