通过redis缓存获取菜品数据
业务:
重点:
//查询redis中的key,规则:dish_分类id
拼接key
String key = "dish_" + categoryId;
//通过redis查询返回List<DishVO>
List<DishVO> list = (List<DishVO>) redisTemplate.opsForValue().get(key);
//Result返回范型
public Result<List<DishVO>> list(Long categoryId){
}
@GetMapping("/list")
@ApiOperation("根据分类id查询菜品")
public Result<List<DishVO>> list(Long categoryId){
//查询redis中的key,规则:dish_分类id
String key = "dish_" + categoryId;
//查询redis中是否存在菜品数据
List<DishVO> list = (List<DishVO>) redisTemplate.opsForValue().get(key);
if (list != null && list.size() > 0){
return Result.success(list);
}
Dish dish = new Dish();
dish.setCategoryId(categoryId);
dish.setStatus(StatusConstant.ENABLE); //启售中的菜品
//如果不存在,查询数据库,并存入redis
list = dishService.listWithFlavor(dish);
redisTemplate.opsForValue().set(key, list);
return Result.success(list);
}
}