行业知识
苍穹外卖-day07 - 缓存菜品- 缓存套餐- 添加购物车- 查看购物车- 清空购物车
2026-11-01 01:13:31
来源:互联网转载
1. 缓存菜品
���redis来缓存菜品数据 , 减少数据库查询操作 ;
缓存逻辑 :
-
每个分类下的菜品保存一份缓存数据
-
数据库中菜品数据有变更时清理缓存数据
关键代码 :
@Autowired private RedisTemplate redisTemplate;/** * 根据分类id查询菜品 * * @param categoryId * @return */ @GetMapping("/list") @ApiOperation("根据分类id查询菜品") public Result list(Long categoryId) { //构造redis中的key,规则:dish_分类id String key = "dish_" + categoryId; //查询redis中是否存在菜品数据 List list = (List) 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); }清理缓存 :
@Autowired private RedisTemplate redisTemplate;/** * 清理缓存数据 * @param pattern */ private void cleanCache(String pattern){ Set keys = redisTemplate.keys(pattern); redisTemplate.delete(keys); }2. 缓存套餐
详细参考 :
Spring Cache-CSDN博客
3.添加购物车
4.查看购物车
5.清空购物车
3,4,5都是基本的crud,就不写笔记了;