jvm缓存之Ehcache

maven导包:


org.springframework.boot
spring-boot-starter-cache

在resources下创建ehcache配置文件:

jvm缓存之Ehcache_第1张图片



    

    
    
    
    
    

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类中缓存需要缓存的数据:

jvm缓存之Ehcache_第2张图片
 

service层:

jvm缓存之Ehcache_第3张图片

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

jvm缓存之Ehcache_第4张图片

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

jvm缓存之Ehcache_第5张图片

数据库值:

jvm缓存之Ehcache_第6张图片

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

jvm缓存之Ehcache_第7张图片

返回数据

jvm缓存之Ehcache_第8张图片

修改数据库:

jvm缓存之Ehcache_第9张图片

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

jvm缓存之Ehcache_第10张图片

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

jvm缓存之Ehcache_第11张图片

 

jvm缓存之Ehcache_第12张图片

 

 

你可能感兴趣的:(JAVA)