当前位置: 首页 > news >正文

王也微信头像淮安网站排名优化公司

王也微信头像,淮安网站排名优化公司,北京开发app,新闻资讯app开发苍穹外卖Day07部分聚焦于缓存功能的实现与优化#xff0c;通过引入redis缓存机制#xff0c;结合Spring Cache 注解#xff0c;降低了数据库负载#xff0c;提升其响应速度。 以下是清除缓存功能代码#xff1a; RestController RequestMapping(/admin/dish…苍穹外卖Day07部分聚焦于缓存功能的实现与优化通过引入redis缓存机制结合Spring Cache 注解降低了数据库负载提升其响应速度。 以下是清除缓存功能代码 RestController RequestMapping(/admin/dish) Slf4j Api(菜品相关接口) public class DishController {AutowiredDishService dishService;AutowiredRedisTemplate redisTemplate;GetMapping(/list)ApiOperation(根据分类id查询菜品)public ResultListDishVO getByCategoryId(Long categoryId) {log.info(根据分类id查询菜品);String key dish: categoryId;ListDishVO a (ListDishVO) redisTemplate.opsForValue().get(key);System.out.println(a);if (a ! null a.size() 0) {return Result.success(a);}Dish dish new Dish();dish.setCategoryId(categoryId);dish.setStatus(StatusConstant.DISABLE);a dishService.listWithFlavor(dish);redisTemplate.opsForValue().set(key, a);return Result.success(a);}PostMapping(/status/{status})ApiOperation(菜品起售停售)public Result startOrStop(PathVariable Integer status, Long id) {dishService.startOrStop(status,id);cleanCache();return Result.success();}private void cleanCache() {Set set redisTemplate.keys(dish:*);redisTemplate.delete(set);} } 在startOrStop方法中当执行菜品起售停售操作后会调用 cleanCache  私有方法来清理 Redis 缓存。在 cleanCache  方法里通过 Set set redisTemplate.keys(dish:*);  利用 Redis 的 keys  命令获取所有以 dish:  开头的键值也就是获取所有与菜品相关的缓存键然后使用 redisTemplate.delete(set)将这些键对应的缓存数据全部删除。 这样可以确保在菜品状态发生改变后缓存中的菜品数据能及时更新避免前端获取到旧的不符合实际状态的菜品信息从而保证了缓存数据与数据库数据的一致性。但是使用keys命令在生产环境中如果数据量很大可能会影响性能因为它需要遍历所有键可以考虑采用更精准的缓存失效策略比如根据具体变更的菜品 id  来有针对性地删除相关缓存而不是批量删除所有菜品缓存也可以使用Spring Cache注解。 Spring Cache EnableCaching加在启动类上用于开启缓存注解功能使得项目中可以使用Spring Cache的其他注解。Cacheable放在方法上在方法执行前先查询缓存中是否存在缓存数据存在数据直接将数据返回没有缓存数据通过反射调用方法并将方法的返回值放到缓存中。CachePut将方法的返回值放到缓存中通常用于在方法执行完毕后更新缓存中的数据。CacheEvict用于将一条或多条数据从缓存中删除可以根据具体的 key 删除指定的缓存数据也可以使用allEntries true 删除整个缓存名称下的所有数据。 以下为使用spring cahce注解的代码 RestController RequestMapping(/admin/dish) Slf4j Api(菜品相关接口) EnableCaching public class DishController {AutowiredDishService dishService;AutowiredRedisTemplate redisTemplate;GetMapping(/list)ApiOperation(根据分类id查询菜品)Cacheable(cacheNames dishCache, key #categoryId)public ResultListDishVO getByCategoryId(Long categoryId) {log.info(根据分类id查询菜品);Dish dish new Dish();dish.setCategoryId(categoryId);dish.setStatus(StatusConstant.DISABLE);ListDishVO a dishService.listWithFlavor(dish);return Result.success(a);}PostMapping(/status/{status})ApiOperation(菜品起售停售)CacheEvict(cacheNames dishCache, allEntries true)public Result startOrStop(PathVariable Integer status, Long id) {dishService.startOrStop(status, id);return Result.success();} } 这段代码使用Cacheable(cacheNames dishCache, key #categoryId)  注解 cacheNames  指定了缓存的名称空间为 “dishCache”用于将菜品相关的缓存数据统一归类管理方便后续维护与排查问题。 key #categoryId  则以传入的菜品分类 id作为缓存的键使得在查询菜品时系统能够依据分类 id  精准地在 “dishCache” 缓存区域中查找对应数据。当缓存中有匹配的数据时直接返回缓存数据不再执行方法体中的数据库查询代码大大加快了响应速度。
http://www.hkea.cn/news/14384129/

相关文章:

  • 万网网站域名多少钱一年全网最新首码项目
  • 网站建设服务yisinuo星凯网站建设
  • 微信公众平台推广网站百度云网盘官网
  • 富阳seo关键词优化商品标题优化
  • 优秀的国外设计网站做一婚恋网站多少钱
  • 免费建站网站网页qq登录网页版一键登录
  • 找做网站的个人没有营业执照怎么样做百度企业网站
  • 昆明seo网站排名南宁做网站公司必荐云尚网络
  • 做网站比特币钱包wordpress 发布说说
  • 零食网站怎么做附子seo
  • 网站logo图标seo网站关键词优化费用
  • 网站开发目录过多的缺点企业网站备案资料
  • 中国制造网国际站官网网站制作技巧017
  • 制作网站的步骤和方法百度关键词优化排名
  • 石家庄网站建设 河北供求网目录搜索引擎有哪些
  • 2014网站设计风格网站怎么做弹窗
  • 沈阳康平志诚建设集团网站苏州高新区建设局网站
  • 网站功能模块表格全国疫苗接种率
  • 做cpa广告建什么网站好免费创建属于自己的网站
  • 重庆网站建设的价格wordpress 微博登陆
  • 无经验做网站php的网站数据库如何上传
  • 移动互联网技术学什么网站怎么优化搜索
  • 南阳网站seo公司网站开发需要多少费用
  • 合肥网站关键词排名万网个人网站
  • 怎么做网站投放广告内蒙古网站制作
  • 网站网站制作怎么样做啪啪网站
  • 做网站镜像步骤淘客怎么做网站
  • 做分享衣服网站的初衷是什么黄冈网站建设收费
  • 网站开发的关键技术有哪些备案中的网站信息怎么填
  • 织梦做的网站首页出现空白潮阳网站制作