Redis作为缓存-结合SpringCache

缓存

缓存的使用方法—->>>>

image-20220411181018545

1、使用Redis手动设置缓存

  1. 判断缓存中是否可以拿到数据
    1. 存在:取到数据
    2. 不存在:查询数据库(查询数据库方法应该加锁,可能出现并发问题)
  2. 处理自己的业务
  3. 返回结果
1
2
3
4
5
6
7
8
9
10
11
12
13
public void method(){
String cache = stringRedisTemplate.opsForValue().get("缓存名称");
//缓存中不存在,从数据库获取
if (!StringUtils.hasText(cache)) {
//查询数据库
//存入缓存
String jsonString = JSON.toJSONString("数据库查询结果");
stringRedisTemplate.opsForValue().set("缓存名称", 数据库查询结果);
}else{
//缓存存在直接返回
return "缓存";
}
}

可能出现的问题:

1、添加空结果缓存 ——> 缓存穿透(查询不存在key)

2、设置加锁 ——> 缓存击穿(查询热点数据的时候某个热点数据key过期)

3、设置过期时间(随机—-有时会出现随机之后结果过期时间一致) ——> 缓存雪崩(大量并发key过期)

2、使用SpringCache设置缓存

SpringCache整合使用SpringBoot参照SpringCache基本使用