springboot默认的缓存管理
常用的缓存注解
- @EnableCaching:在类上使用,表示使用基于注解的方式进行缓存管理
- @Cacheable:用在类或者方法上。
- 该注解用在方法上时,在方法执行前,先根据key在缓存中查询是否有key对应的value值,有的话不执行目标方法;没有则执行目标方法,并将方法的返回值作为value,以键值对的方式存入缓存。
- 属性cacheNames/value:指定缓存的名字
- 属性key:指定缓存中的键
- @CachePut
- @CacheEvict:用于删除缓存数据
- 属性cacheNames/value:指定缓存的名字
- 属性key:指定缓存中的键,一般使用SpEL表达式指定
- @Caching
- @CacheConfig:用于配置公共属性
springboot整合redis实现缓存管理
ehcache.xml配置如下:
<?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" monitoring="autodetect"
dynamicConfig="true" >
<!-- path属性:配置缓存持久化到磁盘的路径-->
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- maxElementsInMemory:内存中可以存放的元素数量-->
<!-- eternal属性:是否永驻内存-->
<!-- timeToIdleSeconds属性:失效前允许闲置时间,单位秒-->
<!-- timeToLiveSeconds属性:失效前允许存在时间,单位秒-->
<!-- overflowToDisk属性:内存不足时是否可以缓存到磁盘-->
<!-- diskPersistent属性:是否将缓存持久化到磁盘-->
<!-- diskExpiryThreadIntervalSeconds属性:磁盘缓存的清理线程运行间隔,默认是120秒-->
<!-- memoryStoreEvictionPolicy属性:当内存中的缓存数量达到 maxElementsInMemory后的清理策略-->
<!-- maxElementsOnDisk属性:磁盘缓存中最多可以存放的元素数量,0表示无穷大-->
<!-- diskSpoolBufferSizeMB:设置磁盘缓存的缓存区大小,以MB为单位-->
<!-- clearOnFlush属性:内存数量最大时是否清除-->
<!-- maxEntriesLocalHeap属性:堆内存中最大缓存对象数,0没有限制-->
<!-- maxEntriesLocalDisk属性: 硬盘最大缓存个数。-->
<defaultCache
maxElementsInMemory="50000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
/>
<!-- name属性:缓存的名称-->
<cache name="CONSTANT"
maxElementsInMemory="50000"
eternal="true"
clearOnFlush="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="1024"
maxElementsOnDisk="100000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
transactionalMode="off">
</cache>
<!--SESSION缓存-->
<cache name="SESSION"
maxElementsInMemory="50000"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
eternal="true"
clearOnFlush="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="1024"
maxElementsOnDisk="100000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
transactionalMode="off">
</cache>
<!--app数据缓存-->
<cache name="APPLICATION"
maxElementsInMemory="50000"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
eternal="true"
clearOnFlush="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="1024"
maxElementsOnDisk="100000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
transactionalMode="off">
</cache>
</ehcache>
标签:缓存,spring,boot,指定,value,key,方法,属性
From: https://www.cnblogs.com/xiaocer/p/16625690.html