SpringBoot——缓存

一、常用的注解

在这里插入图片描述

@EnableCaching

开启基于注解的缓存,在使用注解开发时,必须使用该注解后,才可以使用缓存

@Cacheable

申明该方法是可缓存的,一旦第一次执行过方法后,以后再查同样的数据可以从缓存中取
运行顺序:
1.先查缓存
2.再执行方法

@CachePut

在操作数据库时,凡是需要更新数据库的方法可以标注此注解,这时数据库更新后,缓存也会更新。该注解与@Cacheable的另一个不同之处在于,该注解可以保证方法被调用,而@Cacheable如果已经缓存过,就不会再执行方法了。
运行顺序:
1.先执行方法
2.在更新缓存

@CacheEvict

使用该方法时,会清除指定缓存中指定key的内容,
若此时加上属性 allEnteries=true,则改缓存全部删除

二、注解中常用的属性和方法

CacheManager管理多个Cache组件,对缓存真正crud操作在cache组件中,每一个缓存都有自己唯一一个名字

属性及使用如下:
在这里插入图片描述

cacheNames/value :

指定缓存的名字,缓存使用CacheManager管理多个缓存组件Cache,这些Cache组件就是根据这个名字进行区分的。通过cacheNames或者value属性指定,相当于是将缓存的键值对进行分组,缓存的名字是一个数组,也就是说可以将一个缓存键值对分到多个组里面

key

缓存数据时的key的值,默认是使用方法参数的值,可以使用SpEL表达式计算key的值

keyGenerator

缓存的生成策略,和key二选一,都是生成键keyGenerator可自定义

cacheManager

指定缓存管理器(如ConcurrentHashMap、Redis等)
cacheResolver 和cacheManager功能一样,和cacheManager二选一

condition

指定缓存的条件(满足什么条件时才缓存),可用SpEL表达式(如#id>0,表示当入参id大于0时才缓存)
unless 否定缓存,即满足unless指定的条件时,方法的结果不进行缓存,使用unless时可以在调用的方法获取到结果之后再进行判断(如#result==null,表示如果结果为null时不缓存)

sync

是否使用异步模式进行缓存

补充

SpEl表达式写法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
springboot整合ehcache+redis实现双缓存的过程如下[^1]: 1. 添加依赖:在项目的pom.xml文件中添加ehcache和redis的依赖。 2. 配置ehcache:在application.properties或application.yml文件中配置ehcache的相关属性,包括缓存的名称、最大缓存数量、缓存过期时间等。 3. 配置redis:在application.properties或application.yml文件中配置redis的相关属性,包括redis的地址、端口、密码等。 4. 创建缓存管理器:在Spring Boot的配置类中创建一个缓存管理器,用于管理ehcache和redis的缓存。 5. 使用缓存注解:在需要缓存的方法上添加缓存注解,例如@Cacheable、@CachePut等,指定缓存的名称和缓存的key。 6. 启动项目:运行Spring Boot的启动类,启动项目。 验证整个流程可以通过以下步骤进行: 1. 创建一个Controller类,在其中定义一个需要缓存的方法。 2. 在该方法上添加缓存注解,指定缓存的名称和缓存的key。 3. 启动项目,访问该方法,观察缓存是否生效。 示例代码如下: ```java // 引入相关的包 @RestController public class MyController { @Autowired private MyService myService; @GetMapping("/getData") @Cacheable(value = "myCache", key = "#param") public String getData(@RequestParam String param) { // 从数据库或其他数据源获取数据的逻辑 String data = myService.getDataFromDB(param); return data; } } @Service public class MyService { public String getDataFromDB(String param) { // 从数据库获取数据的逻辑 return "data from database"; } } ``` 相关问题: 1. 如何在Spring Boot中配置ehcache和redis? 2. 如何使用@Cacheable注解进行缓存? 3. 如何在Spring Boot中使用多个缓存管理器?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值