【黑马点评-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());
posted @ 2025-04-12 20:14  kuki'  阅读(35)  评论(0)    收藏  举报