【黑马点评-2店铺查询】一、缓存主动更新 解决 数据一致性问题update(Shop shop)方法
整体思路:更新数据时更新数据库并删除缓存,查询时更新缓存,无效写操作较少
public Result update(Shop shop)的逻辑
写在前面
shop.getId() 的调用依赖于 Shop 类中存在名为 id 的字段。如果 Shop 类使用了 Lombok 的 @Data 注解,并且包含一个名为 id 的字段,Lombok 会自动为该字段生成 getId() 和 setId() 方法。
1. 先判断Shop表的字段id是否非空
if (shop.getId() == null) {
return Result.fail("店铺id不能为空!!");
}
2. 借助MyBatis-Plus的updateById(shop)方法,更新数据库的shop对象
- updateById(shop) 是 MyBatis-Plus 提供的一个便捷方法,用于根据实体对象的主键 ID 更新对应的数据库记录。
3. 再删除缓存中对应的数据
- key为
"cache:shop:"+shop.getId()
stringRedisTemplate.delete(CACHE_SHOP_KEY + shop.getId());

浙公网安备 33010602011771号