缓存商品、购物车多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家目录Contents缓存菜品缓存套餐添加购物车查看购物车清空购物车缓存菜品01•问题说明•实现思路•代码开发•功能测试多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家问题说明用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。后端服务DB结果:系统响应慢、用户体验差缓存菜品01•问题说明•实现思路•代码开发•功能测试多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家实现思路通过Redis来缓存菜品数据,减少数据库查询操作。开始后端服务缓存是否存在读取缓存查询数据库载入缓存查询菜品YesNo多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家实现思路缓存逻辑分析:•每个分类下的菜品保存一份缓存数据•数据库中菜品数据有变更时清理缓存数据keyvaluedish_1string(…)dish_2string(…)dish_3string(…)缓存菜品01•问题说明•实现思路•代码开发•功能测试多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家代码开发修改用户端接口DishController的list方法,加入缓存处理逻辑://构造redis缓存key,规则为:dish_分类idStringkey="dish_"+categoryId;//查询redis中是否有缓存数据Listlist=(List)redisTemplate.opsForValue().get(key);//存在缓存数据,直接返回给前端if(list!=null&&list.size()>0){returnResult.success(list);}Dishdish=newDish();dish.setCategoryId(categoryId);dish.setStatus(StatusConstant.ENABLE);//查询起售中的菜品list=dishService.listWithFlavor(dish);//将查询到的数据载入缓存redisTemplate.opsForValue().set(key,list);returnResult.success(list);DishController多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家代码开发修改管理端接口DishController的相关方法,加入清理缓存的逻辑,需要改造的方法:•新增菜品•修改菜品•批量删除菜品•起售、停售菜品多一句没有,少一句不行,用更短时间,教会更实用的技术!高级软件人才培训专家代码开发抽取清理缓存的方法:/***清理缓存数据*/privatevoidcleanCache(Stringpattern){Setkeys=redisTemplate.keys(pattern);redisTemplate....