【黑马点评】给店铺类型查询业务添加缓存【业务实现】
【黑马点评】给店铺类型查询业务添加缓存【业务实现】
·
直接上代码
实现步骤在代码注释!!!
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Override
public Result queryTypeList() {
//1.从redis中查询店铺类型缓存
String shopType = stringRedisTemplate.opsForValue().get(RedisConstants.CACHE_SHOPTYPE_KEY);
//2.判断是否为空
if (StrUtil.isNotBlank(shopType)) {
//3.存在,直接返回
List<ShopType> shopTypes = JSONUtil.toList(shopType, ShopType.class);
return Result.ok(shopTypes);
}
//4.不存在,从数据库中查询写入redis
List<ShopType> shopTypes = query().orderByAsc("sort").list();
//5.不存在,返回错误
if (shopTypes == null) {
return Result.fail("分类不存在");
}
//6.存在,写入redis
stringRedisTemplate.opsForValue().set(RedisConstants.CACHE_SHOPTYPE_KEY,JSONUtil.toJsonStr(shopTypes));
//7.返回
return Result.ok(shopTypes);
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)