相关推荐recommended
【SpringBoot篇】使用Spring Cache高效处理缓存数据
作者:mmseoamin日期:2023-12-11

文章目录

  • 🌹简述Spring Cache
  • 🏳️‍🌈常用注解
  • 🌺使用SpringCache
    • 🛸@Cacheable注解
      • ⭐测试
      • 🛸@CacheEvict
        • 🎍一次清理一条数据
        • 🎍一次删除多条数据

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第1张

          Spring Cache是一个框架,只要简单加一个注解,就能实现缓存功能。Spring Cache是Spring Framework提供的一个模块,它为应用程序添加了缓存支持。通过使用Spring Cache,你可以在方法级别上定义缓存规则,将方法的返回结果缓存起来,以提高方法调用的性能和响应速度。

          🌹简述Spring Cache

          是一个框架,只要简单加一个注解,就能实现缓存功能

          Spring Cache 是 Spring Framework 提供的一个模块,它为应用程序添加了缓存支持。通过使用 Spring Cache,你可以在方法级别上定义缓存规则,将方法的返回结果缓存起来,以提高方法调用的性能和响应速度。

          Spring Cache 的主要特点和功能包括:

          注解驱动:Spring Cache 基于注解,通过在方法上添加 @Cacheable、@CachePut、@CacheEvict 等注解,来定义缓存规则和行为。

          支持多种缓存实现:Spring Cache 支持多种常见的缓存实现,包括 Ehcache、Redis、Caffeine、ConcurrentMap 等,你可以根据自己的需求选择合适的缓存提供者。

          灵活的缓存配置:你可以通过配置文件或者 Java 代码来灵活地配置缓存管理器、缓存的过期时间、缓存的键生成策略等。

          支持条件化的缓存操作:除了基本的缓存注解外,Spring Cache 还支持条件化的缓存操作,比如通过 SpEL 表达式来定义条件,决定是否执行缓存操作。

          总之,Spring Cache 提供了一种便捷的方式来实现方法级别的缓存,使得开发者可以专注于业务逻辑的实现,而不必过多关注缓存的管理和维护。这样可以有效地提升应用程序的性能,并减少对底层缓存实现的耦合。

          🏳️‍🌈常用注解

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,请添加图片描述,第2张

          @Cacheable:触发将方法返回结果缓存。

          @CacheEvict:触发从缓存中清除一条或多条数据。

          @CachePut:触发将方法返回结果更新到缓存。

          @Caching:组合多个缓存注解在一个方法上。

          @CacheConfig:在类级别共享缓存注解的通用配置。

          🌺使用SpringCache

          使用SpringCache需要把下面的代码导入到pom文件中

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

          这样子我们就可以使用SpringCache了

          我们打开下面链接里面的文件,我们下面要使用文件中的代码进行讲解

          我用夸克网盘分享了「springcache-demo.zip」,点击链接即可保存。打开「夸克APP」 链接:https://pan.quark.cn/s/571a45c464d6

          我们首先来启动Redis服务

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第3张

          CacheDemoApplication.java

          在启动类上加上这个注解,开启缓存注解功能

          @EnableCaching
          

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第4张

          🛸@Cacheable注解

          进入controller包

          UserController.java

          加入下面的注解

          @CachePut
          

          插入数据的同时,我们还需要把数据保存到Redis中一份

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第5张

          ⭐测试

          我们启动项目,输入http://localhost:8888/doc.html打开接口文档进行测试

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第6张

          发现发送成功,我们去查看数据库,发现数据库已经插入了一条数据了

          我们打开Redis Desktop Manager,连接成功后,发送数据

          发现

          user5对象已经进行了序列化

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,请添加图片描述,第7张

          🛸@CacheEvict

          🎍一次清理一条数据

          如果我们把数据库中的数据给删除掉了,那么对应的缓存数据我们也应该删除,下面我们就来使用@CacheEvict注解来删除缓存数据

          我们加上这一段代码

          @CacheEvict(cacheNames = "userCache",key = "#id")
          

          然后启动项目

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第8张

          输入http://localhost:8888/doc.html打开接口文档进行测试

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第9张

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第10张

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第11张

          查询数据库,发现数据库里面对应id=2的字段被删除了

          Redis缓存也删除了

          🎍一次删除多条数据

          我们在deleteAll这个方法中进行操作

          仍然加上@CacheEvict注解

          @CacheEvict(cacheNames = "userCache",allEntries = true)
          

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第12张

          使用接口文档http://localhost:8888/doc.html发送数据,就可以删除所有缓存了

          本文介绍了Spring Cache的常用注解及示例,让大家快速上手Spring Cache的使用。Spring Cache是一个非常强大的缓存框架,能够通过简单的注解就实现缓存,大大简化了我们的开发工作。希望本文对大家有所帮助,如果还有疑问,欢迎在评论区交流。

          【SpringBoot篇】使用Spring Cache高效处理缓存数据,在这里插入图片描述,第13张