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

建站公司学习网页音频提取工具

建站公司学习,网页音频提取工具,凡科网是做什么的,网站升级应注意的问题Redis缓存餐厅数据 我们来看主要的流程 很简单,就是在数据库和接口之间加了一层缓冲,在redis之前其实还可以加其他的缓存 例如 nginx的缓存 接下来,就是结合我的业务,来做缓存 我这里的业务逻辑是,按了分类的按钮,分别以不同的 分类为一组缓存数据 所以,这里的缓存粒度是分类…

Redis缓存餐厅数据

我们来看主要的流程
在这里插入图片描述
很简单,就是在数据库和接口之间加了一层缓冲,在redis之前其实还可以加其他的缓存 例如 nginx的缓存

接下来,就是结合我的业务,来做缓存

在这里插入图片描述
我这里的业务逻辑是,按了分类的按钮,分别以不同的 分类为一组缓存数据
所以,这里的缓存粒度是分类
我设计的id如下

public class RedisContants {//用户端--------------------------------//分类下的菜品缓存public static final String DISH_CATEGORY = "dish:category:";}

为了体现粒度,我们操作redis key的时候,加上分类id

我们来看我已经写好的样子

在这里插入图片描述

我们需要改造的地方有几处
第一:
通过分类id获得此分类下的菜品的时候,我们要保存redis

第二:
当我们修改菜品,不管是添加 + 删除 + 修改,都要修改这里的代码
我在想其实,这里会有写耦合,redis的操作 + 数据库的操作,如果我们可以分离出来就完美了

代码

redis的工具类在我另外一个博客里边
https://blog.csdn.net/weixin_52232901/article/details/135850329

获得商品的controller修改

@RestController("userDishController")
@RequestMapping("/user/dish")
@Slf4j
@Api(tags = "菜品管理")
public class DishController {@Autowiredprivate DishService dishService;@Autowiredprivate RedisCache redisCache;@ApiOperation("根据分类id查询菜品")@GetMapping("/list")public Result getByCategoryId(Long categoryId) {log.info("根据分类id查询菜品 参数为{}",categoryId);//先去redis中查List<DishVO> dishVOs = redisCache.getCacheObject(RedisContants.DISH_CATEGORY + categoryId);if(dishVOs != null && dishVOs.size() > 0) {return Result.success(dishVOs);}//没查到redis,去mysql查,并且更新redis,设置一天的时间为过期时间dishVOs = dishService.getByCategoryIdUser(categoryId);redisCache.setCacheObject(RedisContants.DISH_CATEGORY + categoryId,dishVOs,RedisContants.DISH_CATEGORY_TTL,RedisContants.DISH_CATEGORY_TIMEUNIT);return Result.success(dishVOs);}}
    public static final String DISH_CATEGORY = "dish:category:";public static final Integer DISH_CATEGORY_TTL = 24;public static final TimeUnit DISH_CATEGORY_TIMEUNIT = TimeUnit.HOURS;

修改相关数据的controller修改

这里的修改,你们可以不用看,这里只是我的业务有相关性,所以记录下来

/*** 员工管理*/
@RestController
@RequestMapping("/admin/dish")
@Slf4j
@Api(tags = "菜品管理")
public class DishController {@Autowiredprivate DishService dishService;@Autowiredprivate RedisCache redisCache;@ApiOperation("分页查询")@GetMapping("/page")public Result<PageResult> pageQuery(DishPageQueryDTO dishPageQueryDTO) {log.info("分页查询 参数为{}",dishPageQueryDTO);PageResult page = dishService.pageQuery(dishPageQueryDTO);return Result.success(page);}@ApiOperation("根据id查询菜品")@GetMapping("/{id}")public Result getByid(@PathVariable Long id) {log.info("根据id查询菜品 参数为{}",id);DishVO dish = dishService.getByid(id);return Result.success(dish);}@ApiOperation("根据分类id查询菜品")@GetMapping("/list")public Result getByCategoryId(Long categoryId) {log.info("根据分类id查询菜品 参数为{}",categoryId);List<Dish> dish = dishService.getByCategoryId(categoryId);return Result.success(dish);}@ApiOperation("修改菜品")@PutMappingpublic Result<PageResult> update(@RequestBody DishDTO dishDTO) {log.info("修改菜品 参数为{}",dishDTO);dishService.updateDish(dishDTO);//删除缓存redisCache.deleteObject(RedisContants.DISH_CATEGORY + dishDTO.getCategoryId());return Result.success();}@ApiOperation("新增菜品")@PostMappingpublic Result<PageResult> add(@RequestBody DishDTO dishDTO) {log.info("新增菜品 参数为{}",dishDTO);dishService.addDish(dishDTO);//删除缓存redisCache.deleteObject(RedisContants.DISH_CATEGORY + dishDTO.getCategoryId());return Result.success();}@ApiOperation("修改状态")@PostMapping("/status/{status}")public Result changeStatus(@PathVariable Integer status,Long id) {log.info("修改状态 参数为{},{}",status,id);dishService.changeStatus(status,id);Dish dish = dishService.getById(id);//删除缓存redisCache.deleteObject(RedisContants.DISH_CATEGORY + dish.getCategoryId());return Result.success();}@ApiOperation("删除菜品")@DeleteMappingpublic Result delete(String ids) {log.info("删除菜品 参数为{}",ids);String[] split = ids.split(",");List<Long> list = Arrays.stream(split).map((str) -> Long.parseLong(str)).collect(Collectors.toList());dishService.deleteById(list);Collection<String> keys = redisCache.keys(RedisContants.DISH_CATEGORY + "*");//删除所有的菜品redisCache.deleteObject(keys);return Result.success();}}

这里按道理来说,其实还是要给redis这样的key要至少设置时间才行,不然就会有问题

我这里的修改,比较要注意的是,我这里的keys,我在批量删除的时候,我的业务逻辑是,直接所有的缓存都删除
也就是以 dish:category:分类id,开头的所有都要删除,所以我们需要得到所有这样的keys的集合,也就是

Collection<String> keys = redisCache.keys(RedisContants.DISH_CATEGORY + "*");

通过这个,然后直接删除,通过集合的方式,直接删除

http://www.yayakq.cn/news/634887/

相关文章:

  • 石家庄企业如何建网站广东网站建设智搜宝
  • 陕西省城乡住房建设部网站html设计主题网站代码
  • 网页链接制作生成常州seo关键词排名
  • 自建网站的步骤网站开发学哪种语言
  • 满城建设局网站东莞网站建设排名公司
  • 百合视频做爰视频网站北京app建设
  • 网站内搜索功能怎么做wordpress 边框
  • 网站建设接外包流程图湖南招标网官网
  • 地域购物网站一级消防工程师考试难度有多大
  • 网站开发与网页制作难不难做水果生意去那个网站
  • 网站快速注册做网站好还是做淘宝好
  • 门户网站建设情况自查报告网站建设与代运营介绍
  • 长沙教育建设信息网站科技有限公司英文
  • 网站微信分享链接怎么做的重庆文旅急了
  • 做电子请柬的网站品牌服务推广
  • c 网站开发简单实例教程短网址怎么生成
  • 网站下载不了怎么解决免费追剧的软件
  • 唐山模板网站建设生成器在线制作免费
  • 公司网站制作设计价格衡阳市建设工程质量监督站网站
  • 十大装饰公司泉州百度seo公司
  • 网站建设图片路径错了 怎么改电脑做系统教学网站
  • 电销系统多少钱一套郑州seo联系搜点网络效果好
  • 网站建设wesnowsat北京网站建设公司分形
  • 自己建个购物网站网站建设 手机
  • 深圳网站设计公司龙岗合肥seo搜索优化
  • 网站建设中的板块名称北京住房与城乡建设网站
  • 生鲜网站模板网站建设怎样设置动态背景
  • 临沂网站设计培训班微信微网站制作公司
  • 搭建简单网站政务网站建设云计算中心
  • 百度 模块网站彩票网站是静态动态