SpringBoot项目中缓存Cache的使用

本文介绍了SpringBoot项目中缓存的原理、使用缓存的原因,以及如何通过`@EnableCaching`、`@Cacheable`、`@CachePut`和`@CacheEvict`注解实现缓存的配置和操作。通过实际示例展示了这些注解的简单应用。
摘要由CSDN通过智能技术生成

SpringBoot项目中缓存Cache的使用

一、缓存是什么

缓存是一种将经常使用的数据存储在高速存储介质中的技术。

二、为什么要使用缓存

  1. 通常情况下,我们每发一次请求,做一次查询,都会从数据库中取出数据,返回结果。
  2. 但使用缓存之后,我们发送相同的请求,只有第一次会从数据库中取出数据,同时将取出的数据放入缓存中,在之后的请求中,如果缓存中有数据,将会直接从缓存中读取数据,返回结果。
  3. 因此缓存可以提高数据的访问速度,减少对数据库的访问次数,从而提升系统的性能和响应速度。

image-20231018164134576

三、缓存注解

  1. @EnableCaching

    用于启用缓存功能。通过在Spring Boot项目的启动类上添加@EnableCaching注解,可以启用Spring Boot的缓存管理功能。

    序列参数解释
    1cacheNames指定缓存组件的名字
    2key缓存数据时使用的key,默认使用方法参数
    3keyGeneratorkey 的生成器。 key 和 keyGenerator 二选一使用
    4cacheManager可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
    5condition可以用来指定符合条件的情况下才缓存
    6unless否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断
    7sync是否使用异步模式。
  2. @Cacheable

    用于标记方法的返回值应该被缓存。当调用被@Cacheable注解标记的方法时,Spring Boot会首先在缓存中查找对应的结果,如果找到则直接返回缓存中的结果,否则执行方法的逻辑,并将方法的返回值存储到缓存中。@Cacheable注解可以指定缓存的名称和缓存的key,以及其他的一些属性。

  3. @CachePut

    用于标记方法的返回值应该被缓存或更新缓存。与@Cacheable不同的是,@CachePut注解会执行方法的逻辑,并将方法的返回值存储到缓存中,而不会先在缓存中查找结果。如果缓存中已经存在对应的key,则会更新缓存中的值。

  4. @CacheEvict

    用于标记方法执行后应该从缓存中删除对应的数据。当调用被@CacheEvict注解标记的方法时,Spring Boot会先执行方法的逻辑,然后从缓存中删除对应的数据。@CacheEvict注解可以指定缓存的名称和要删除的缓存key,以及其他的一些属性。

四、缓存注解的简单使用

  1. 在SpringBoot项目的启动类上添加注解@EnableCaching

    image-20231018192809663

  2. 在service查询方法上添加注解@Cacheable

    image-20231018200906916

  3. 在service添加方法上添加注解@CachePut

    image-20231018200936938

  4. 在service删除方法上添加注解@CacheEvice

    image-20231018201008945

  5. controller方法

    image-20231018201135240

  6. 运行启动类的main方法,并进行测试,发现缓存能正常读取和更新,测试成功

    image-20231018201545053

    image-20231018201423893

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值