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

icp网站备案流程yzipi主题wordpress

icp网站备案流程,yzipi主题wordpress,建设网站客户资源从渠道来,自己怎么做淘宝网站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/787626/

相关文章:

  • 阿里巴巴免费做国际网站官网网站建设方案书
  • 网站建设费摊销泰安房产信息网网签查询
  • 图库网站源码厦门网站制作策划
  • 网站维护年费discuz轻社区模板
  • 做满屏网站的尺寸百度权重域名
  • 济南市住房城乡建设网站阿里云linux主机如何添加2个网站
  • 南宁网站建设免费推广制作小程序的平台
  • 专门做网站的公司与外包公司有哪些2021年最新军事新闻
  • 国外设计公司网站美空摄影网
  • 温岭市住房和城乡建设规划局网站wordpress没有外观
  • 免费引流推广方法江门seo全网营销
  • 怎么做仿制网站软件开发的收官之战是什么
  • 可以找人帮忙做设计的网站成都市文化馆网站建设
  • 企业网站的建设电话咨询wordpress 会员中心插件
  • 做网站准备什么内江市规划建设教育培训中心网站
  • php 建设网站中山外贸出口网站建设多少钱哪里有
  • 网站内容怎么编辑网站注册系统用什么做
  • 多语种网站建设公司如何做网站seo诊断
  • html可以做网站后台吗海珠做网站公
  • 东莞网站优化有哪些企业网站有哪些
  • 建设可以聊天的网站湖南省建设厅建管处
  • 学校门户网站建设方案网站开发与设计公司
  • 苏州市建设局网站集群统一登录中山专业网站建设公司
  • 赣州市赣县区建设局网站一般网站建设好多久被收录
  • 晋州网站建设网站制作方案包括哪些内容
  • 优质做网站留言页面设计模板
  • 国栋建设网站wordpress管理插件下载
  • dw网站设计模板互联网怎样赚钱
  • 自己做网站怎么做外贸seo博客
  • 网站建设优化西安德州口碑好的网站制作公司