黑马redis37p 店铺查询
首先是一个Controller层的,原有的代码注释了,没用,自定义一个方法
@GetMapping("list")
public Result queryTypeList() {
// List<ShopType> typeList = typeService
// .query().orderByAsc("sort").list();
return typeService.queryByList();
}
然后是业务层,service不写了,直接上实现的
@Resource
StringRedisTemplate stringRedisTemplate;
@Override
public Result queryByList() {
String key =CACHE_SHOP_TYPE_KEY;
//1.查询redis缓存
String shopTypeJson = stringRedisTemplate.opsForValue().get(key);
//判断redis中是否有数据存在
if (StrUtil.isNotBlank(shopTypeJson)) {
//存在 返回
List<ShopType> shopTypes = JSONUtil.toList(shopTypeJson, ShopType.class);
return Result.ok(shopTypes);
}
//redis 不存在 从数据查
List<ShopType> shopTypes = query().orderByAsc("sort").list();
//判断数据是否有数据存在
if(shopTypes==null){
return Result.fail("分类不存在");
}
//如果存在 则查询到的信息存入redis
stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(shopTypes));
return Result.ok(shopTypes);
}
采用redis里string的方式