Redis 注解使用

1.引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

2.启用类上加上注解

@EnableCaching

3.方法上加注解(查询方法)

@Cacheable(cacheNames ="product",key = "#productId",condition="true",unless = "#productId.length() < 10")
public ProductInfo findOne(String productId) {
    return repository.findOne(productId);
}

注解:@Cacheable 表示方法的返回值将被缓存;若加载类上,则所有方法返回值将被缓存
cacheNames 缓存名称,
key 缓存的字典key 支持SpEL表达式
condition 条件表达式 支持SpEL表达式 true 则缓存,默认空缓存
unless 具有一票否决权。若值为true 则不缓存,false则缓存,支持SpEL表达式; 用的多,可以筛选出错误信息不用cache
4.方法上加注解(保存方法)

@CachePut(cacheNames ="product" , key = "#productInfo.productId")
@Override
public ProductInfo save(ProductInfo productInfo) {
    return repository.save(productInfo);
}

注解:@CachePut 更新缓存
5.注意事项:

a.查询的缓存对象和编辑都必须返回同一个对象

b.并且对象都必须实现Serialiable接口

c.两个方法缓存key必须是同一个
**

清空缓存

**

@CacheEvict(cacheNames = "selectAllUser",allEntries = true)  全部删除
@CacheEvict(cacheNames="user", key="#id")    根据id单个删除

@CacheEvict 作用和配置方法:
根据一定的条件对缓存进行清空
cacheNames:存储注解方法调用结果的缓存名称。
key:缓存的 key,可以为空(建议指定)。如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合。
cacheManager:指定使用的cacheManager。
condition:缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存。
allEntries:是否清空所有缓存内容。
beforeInvocation:是否在方法执行前就清空。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值