欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

springboot整合redis使用缓存注解

时间:2023-06-30

1.启动类标明@EnableCaching

@SpringBootApplication@MapperScan("com.jx.luckyDraw.mapper")@EnableCachingpublic class LuckyDrawApplication { public static void main(String[] args) { SpringApplication.run(LuckyDrawApplication.class, args); }}

2.常用注解的种类
@Cacheable
@CachePut
@CacheEvict

2.1 作用
@Cacheable:在方法执行前判断对应缓存是否存在,如果存在直接返回缓存结果,否者执行方法将结果缓存,适用于查询类。

@CachePut:与@Cacheable不同的是@CachePut一定会执行方法,并将方法的返回值更新到缓存,适用于更新,插入。

@CacheEvict:清除缓存。

2.2 例子

@Cacheable

@Cacheable(cacheNames = "drawDetails", key = "#userId + ':' + #batchId", unless = "#result ==null") public DrawDetailPO getDrawDetails(String userId, Long batchId) {

当getDrawDetails方法的返回值不为null时,将方法的执行结果按照#userId + ‘:’ + #batchId 的方式缓存到redis中。

redis中键名为:

drawDetails::81466011bd2a7cf40502a08827038390:1490935513660657664

@CacheEvict

@CacheEvict(value = {"drawBatch", "drawDetails"}, allEntries = true, condition = "#result > 0") @Override public int newDrawBatchInfo(Integer batchCount) {

当newDrawBatchInfo方法的返回值大于0时,将命名空间为drawBatch" 或者drawDetails的键全部删除。

allEntries 默认为false,当有多个键时必须配置true才能删除。

beforeInvocation 属性:是否在方法执行前删除,默认为false。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。