首页 > 其他分享 >spring boot中的缓存管理

spring boot中的缓存管理

时间:2022-08-25 21:16:26浏览次数:74  
标签:缓存 spring boot 指定 value key 方法 属性

springboot默认的缓存管理

常用的缓存注解
  1. @EnableCaching:在类上使用,表示使用基于注解的方式进行缓存管理
  2. @Cacheable:用在类或者方法上。
    1. 该注解用在方法上时,在方法执行前,先根据key在缓存中查询是否有key对应的value值,有的话不执行目标方法;没有则执行目标方法,并将方法的返回值作为value,以键值对的方式存入缓存。
    2. 属性cacheNames/value:指定缓存的名字
    3. 属性key:指定缓存中的键
  3. @CachePut
  4. @CacheEvict:用于删除缓存数据
    1. 属性cacheNames/value:指定缓存的名字
    2. 属性key:指定缓存中的键,一般使用SpEL表达式指定
  5. @Caching
  6. @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

相关文章

  • springboot集成slf4j配置日志
    slf4j简介slf4j是对所有日志框架制定的一种规范、标准、接口,而不是一个框架的具体实现。springboot集成slf4j的简单示例springboot内部已经集成slf4j。@SpringBootAppl......
  • springboot项目的部署
    方式1:打包成jar包pom.xml中指定项目的打包方式<!--可省略--><packaging>jar</packaging>使用maven进行打包将jar包放到任意一个目录下,执行如下命令nohup命......
  • SpringBoot - 文件上传原理
    文件上传原理来个例子客户端<formrole="form"th:action="@{/upload}"method="post"enctype="multipart/form-data"><divclass="form-group"><label......
  • Spring Boot 运行的时候提示日志错误
    提示的错误信息为:Causedby:java.lang.IllegalArgumentException:LoggerFactoryisnotaLogbackLoggerContextbutLogbackisontheclasspath.EitherremoveLog......
  • Spring(一)- 初始 + DI+scope
    1、获取bean实例的三种方式1.1id属性1.1.1jar<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.3.1......
  • Spring 项目启动错误提示 LoggingApplicationListener
    启动Spring项目的时候提示下面的错误信息:Exceptioninthread"main"java.lang.IllegalArgumentException:Cannotinstantiateinterfaceorg.springframework.contex......
  • Spring boot Security OAuth2监听用户登录成功或失败
    1:登陆成功监听@ComponentpublicclassAuthenticationSuccessEventListenerimplementsApplicationListener<AuthenticationSuccessEvent>{@Autowiredpr......
  • 四、Spring Cloud Alibaba项目,测试模块之生产者与消费者
    1、模块说明生产者:service-order消费者:service-user说明:消费者user调用生产者order,调用订单服务 2、生产者pom文件<?xmlversion="1.0"encoding="UTF-8"?><proj......
  • 【文件下载】SpringBoot文件下载
    1.将文件以流的形式一次性读取到内存,通过响应输出流输出到前端/***@parampath想要下载的文件的路径*@paramresponse*@功能描述下载文件:*/@RequestMapping("......
  • SpringBoot修改启动端口server.port方式
     springboot服务修改端口的方式1、修改application.yml文件这是最简单的方式 2、以jdk参数方式启动java-Dserver.port=3000-jarxx.jar 3、启动参数java......