Redis基于注解方式实现缓存

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版权协议,转载请附上原文出处链接和本声明。