使用Redis缓存
@Cacheable
当方法执行的时候会先访问缓存,如果有直接返回缓存,不执行方法。否则就直接执行方法,并在执行后将返回值放入缓存(condition条件为真,unless条件为假时执行)。
@CacheEvict
当方法执行完清理缓存(一条或多条)
@CachePut
将方法的返回值放入缓存
cacheNames/value :用来指定缓存组件的名字(给Spring Cache管理的key分组管理,实际存储的key是value::key
)
key :缓存数据时使用的 key,可以用它来指定。默认是使用方法参数的值。(这个 key 你可以使用 spEL 表达式来编写),可看源码
#result (方法的返回值)
#root.methodName (方法的名称) .就是获取root的属性root代表该方法对象,其他同理
#方法参数 (方法参数)
keyGenerator :key 的生成器。 key 和 keyGenerator 二选一使用
cacheManager :可以用来指定缓存管理器。从哪个缓存管理器里面获取缓存。
condition :可以用来指定符合条件的情况下才缓存
unless :否定缓存。当 unless 指定的条件为 true ,方法的返回值就不会被缓存。当然你也可以获取到结果进行判断。(通过 #result 获取方法结果)
sync :是否使用异步模式。
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--spring cache-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>