(一)、缓存
(1)、什么是缓存
缓存就是数据交换的缓冲区,称作Cache,是存储数据的临时地方,一般读写性能高
(2)、添加Redis缓存
service层代码
@Override
public Result getShopById(Long id) {
String key = RedisConstants.CACHE_SHOP_KEY + id;
// TODO 1. 在缓存中查找数据
String shopJson = stringRedisTemplate.opsForValue().get(key);
// TODO 2. 缓存中存在,直接将数据返回
if (!StrUtil.isBlank(shopJson)) {
Shop shop = JSONUtil.toBean(shopJson, Shop.class);
return Result.ok(shop);
}
// TODO 3. 缓存中不存在,在数据库中进行查找
Shop shop = shopMapper.selectById(id);
// TODO 4. 数据库中不存在,返回【商铺信息不存在】
if (shop == null) return Result.fail("商铺信息不存在");
// TODO 5. 数据库中存在,将数据写入到缓存中并且将数据返回给前端
String shopJsonFromDataBase = JSONUtil.toJsonStr(shop);
stringRedisTemplate.opsForValue().set(key,shopJsonFromDataBase);
return Result.ok(shop);
}
(3)、缓存更新策略