3.2 Spring提供的缓存操作注解

本文深入探讨了在高并发场景下,如何利用Redis和Spring的缓存注解管理数据库数据,避免数据不一致问题。@Cacheable用于查询业务,先查缓存再查数据库;@CachePut确保方法执行后更新缓存;@CacheEvict用于新增、修改、删除时清除相应缓存。同时介绍了@Caching用于组合操作,以及配置缓存过期时间的方法。
摘要由CSDN通过智能技术生成

1.在高并发的时候使用删除数据库数据在缓存到redis中,被别的线程缓存了造成数据不一致的问题所以用缓存注解

  1. @Cacheable
  • 通常用于查询业务,先去缓存服务器查询,如果有结果直接返回,如果没有,再调用目标方法执行业务,并且将目标方法的返回值重建到缓存中

在这里插入图片描述在这里插入图片描述

先查询了redis发现redis没有于是就查询了数据库,当我点击多次的查询的时候也不在查询数据库了
在这里插入图片描述

我们发现在redis中keys是stucache::stulist ,get 获取类似也可以发现是string这说明
value完全序列化到里面了,也就是业务数据

1.2 :我们发现每次都要设置cachenames于是我们就把他设置到类上,这样就不用每个方法都写一遍cachenames ;@Cacheable这个注解的key只能用参数不能用返回值

在这里插入图片描述
在这里插入图片描述

2 @CachePut
- 标记了该注解的方法,一定会被执行,将方法的返回值重建到缓存中,多用于添加的业务(就是添加的到缓存中,查询就直接在缓存中查)

在这里插入图片描述

  1. (删除单个)@CacheEvict - 表示删除某个缓存,多用于新增、修改、删除的业务

在这里插入图片描述

4.删除多个 @Caching - 以上3个注解的数组集合体

在这里插入图片描述

5.配置缓存的过期时间
spring:
redis:
host: 192.168.195.188
#配置缓存的过期时间
cache:
redis:
time-to-live: 600000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值