yml加配置
# 表示是用redis做缓存
spring:
cache:
type: redis
主启动类
// import org.springframework.cache.annotation.EnableCaching;
@EnableCaching
@Cacheable注解
该注解加在方法上,将方法的返回值存入缓存中。作用让用户访问接口拿数据时(每个用户拿到的数据相同),此时使用缓存能减轻数据库压力,缓存效率高。
属性 | 解释 | 示例 |
---|---|---|
value key | 缓存空间,自定义的。就是key的前缀,可以这么理解,一个缓存空间下能有多个key | 单级时:@Cacheable(value = "redis:test", key="'key'") redis中的key为:redis::key 多级时:@Cacheable(value = "redis:test", key = "#user.id") redis中的key为:redis:test::user对象中的id属性值,前提user对象是这个方法的入参 这里的 : 表示多级,也可以不要,就是单级 |
condition | 缓存的条件,可以不要。 | @Cacheable(value = "redis:test",condition="#user.id>2") |
@CacheEvict注解
该注解加在方法上,能够根据一定的条件对缓存进行清空。作用:当数据库对应的缓存数据发生改变时,将使用该注解加在改数据库数据的方法上清除对应缓存,让用户访问接口时去数据库拿,然后再加入缓存,起到更新缓存的效果。
属性 | 解释 | 示例 |
---|---|---|
value key condition | 同上 | 同上 |
allEntries | 是否清空所有缓存内容,默认为false | @Cacheable(value = "redis:test", allEntries=true) |
beforelnvocation | 是否在方法执行前清空缓存,默认为false,如果方法执行抛出异常,则不会清空缓存 | @Cacheable(value = "redis:test", beforelnvocation=true) |
版权声明:本文为weixin_52877849原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。