Redis @Cacheable/@CacheEvict注意事项

redis @Cacheable/@CacheEvict注意事项

1、一个类中,方法A调用 标志了@Cahcheable的方法B,缓存会失效,好像是Spring AOP动态代理的问题,对内部方法不进行代理,因此如果使用缓存redis注解不要使用this调用 标注了@Cahcheable的本类方法B。

2、@Cacheable方法中发生异常,缓存保存失败

3、一个标志@Cacheable方法,常常会调用其它类中的@Cacheable方法。

例如:article类 方法A,调用comment类 方法B,A(article)->B(comment) 。第一次缓存访问article A()时,会对A , B 方法都缓存。

当B(comment)对应的数据发生改变时,如果是增加一个comment,会移除comment在redis中的所有数据。

当我们再次访问 A()时,会看缓存中是否有该缓存,结果是有的,因为article对应数据未发生改变。但是article对应的comment数据此时已经发生改变了,那么当前访问A()获取的数据只是缓存中的错误数据。

因此:当子表comment数据发生改变时,不仅应该移除 comment在redis中的缓存,还应该移除父表article在redis中的缓存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白鸽呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值