问题:不是所有的数据都需要请求后端的

解决方案:缓存

实现思路:每一个分类为一个key,一个可以下面可以有很多菜品

缓存代码
@GetMapping("/list")
@ApiOperation("根据分类id查询菜品")
public Result<List<DishVO>> list(Long categoryId) {
String key = "dish_" + categoryId;
List<DishVO> list= (List<DishVO>) redisTemplate.opsForValue().get(key);
if(ObjectUtil.isNotEmpty(list)){
return Result.success(list);
}
Dish dish = new Dish();
dish.setCategoryId(categoryId);
dish.setStatus(StatusConstant.ENABLE);
list = dishService.listWithFlavor(dish);
redisTemplate.opsForValue().set(key, list);
return Result.success(list);
}
清除缓存

package com.sky.controller.admin;
import java.util.List;
import java.util.Set;
@RestController
@RequestMapping("/admin/dish")
@Api(tags = "菜品相关接口")
@Slf4j
public class DishController {
private DishService dishService;
private RedisTemplate redisTemplate;
@Autowired
public DishController(DishService dishService, RedisTemplate redisTemplate) {