东莞网站设计公司淘宝,个人网页素材,哪个网站做娱乐,wordpress 修改为中文文章目录 1、给查询商铺的缓存添加超时剔除和主动更新的策略2、根据id查询店铺2.1、queryById2.2、RedisConstants.java 3、根据id修改店铺3.1、ShopController.java3.2、update 1、给查询商铺的缓存添加超时剔除和主动更新的策略 修改ShopController中的业务逻辑#xff0c;满… 文章目录 1、给查询商铺的缓存添加超时剔除和主动更新的策略2、根据id查询店铺2.1、queryById2.2、RedisConstants.java 3、根据id修改店铺3.1、ShopController.java3.2、update 1、给查询商铺的缓存添加超时剔除和主动更新的策略 修改ShopController中的业务逻辑满足下面的需求 根据id查询店铺时如果缓存未命中则查询数据库将数据库结果写入缓存并设置超时时间根据id修改店铺时先修改数据库再删除缓存 2、根据id查询店铺
2.1、queryById Overridepublic Result queryById(Long id) {String key CACHE_SHOP_KEY id;//1、从redis查询商铺缓存String shopJson stringRedisTemplate.opsForValue().get(key);//2、判断是否存在if (StrUtil.isNotBlank(shopJson)) {//3、存在直接返回Shop shop JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}//4、不存在根据id查询数据库Shop shop getById(id);//5、数据库不存在返回错误if (shop null) {return Result.fail(店铺不存在!);}//6、存在写入redisstringRedisTemplate.opsForValue().set(key, JSONUtil.toJsonStr(shop),CACHE_SHOP_TTL, TimeUnit.MINUTES);//7、返回return Result.ok(shop);}2.2、RedisConstants.java public static final Long CACHE_SHOP_TTL 30L;public static final String CACHE_SHOP_KEY cache:shop:;3、根据id修改店铺
3.1、ShopController.java PutMappingpublic Result updateShop(RequestBody Shop shop) {// 写入数据库//shopService.updateById(shop);//return Result.ok();return shopService.update(shop);}3.2、update OverrideTransactionalpublic Result update(Shop shop) {Long id shop.getId();if (id null) {return Result.fail(店铺id不能为空);}//1、更新数据库updateById(shop);//2、删除缓存stringRedisTemplate.delete(CACHE_SHOP_KEY id);return Result.ok();}
}此时刷新redis发现商户信息已经被删除