springboot 中Redis缓存应用

第一在主启动类中 加入

@EnableCaching()


@SpringBootApplication
@MapperScan("com.yumin.dataobject.mappper")
@EnableCaching   //开启注解
public class SellApplication {

    public static void main(String[] args) {
        SpringApplication.run(SellApplication.class, args);
    }

}

 

注意面向前端的VO 需要实例化 实现 Serializable接口  

要不然会报错 

 

1.在我们处理的类中加上缓存注解 

@Cacheable(cacheNames = "product",key="123")

怎么理解呢? 其实我们这个方法返回的对象数据放回到了缓存中 。

第一次走进入这个方法 ,第二次就不会进这个方法里面了 ,可以debug测试下。 

那么问题来了 ? 如果我们后台修改了数据且不是缓存里面还没有变? 

怎么办呢? 

在后天调用的方法上面添加注解

@CacheEvict(cacheNames="product",key="123");

就是每执行这个 方法我们就把product这个包给清除掉。

然后再次调用list这个方法的时候第一次还是会进入方法内 从第二次就开始从缓存里面读取

 

@CachePut(cacheNames="",key="")  只能在放回值一样的时候才可以使用和  @CacheAble搭配只用 。@CacheAble只放在不对数据修改的一方。

 

 

添加条件判断   

key=“#sellId” 后面可以加上condition=“#sellId.length()>3”如果参数大于3的话第一次进入方法第二次就会进缓存区拿。还有参数必须传入,不然会报错。

最后一个点:

因为我们放回的结果如果code ==0  为正确结果 进行缓存,如果code=1 那么就不需要缓存了 。只对正确的缓存怎么做呢?

unless=“#result.getCode!=0”  

需要取反值。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值