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

8.10 用redis实现缓存功能和Spring Cache

什么是缓存?
缓存(Cache), 就是数据交换的缓冲区,俗称的缓存就是缓冲区内的数据,一般从数据库中获取,存储于本地代码。

通过Redis来缓存数据,减少数据库查询操作;
在这里插入图片描述
逻辑
每个分类的菜品保存一份缓存数据
数据库菜品数据有变更时清理缓存数据

如何将商品数据缓存起来。

   @GetMapping("/list")@ApiOperation("根据分类id查询菜品")public Result<List<DishVO>> list(Long categoryId) {//查询redis里面是否存在数据类;String key="dish_"+categoryId;//如果存在直接返回List<DishVO> list = (List<DishVO>) redisTemplate.opsForValue().get(key);if (list!=null&&list.size()>0){return Result.success(list);}//不存在需要查询数据库,并保存至redis里面Dish dish = new Dish();dish.setCategoryId(categoryId); //设置套餐的iddish.setStatus(StatusConstant.ENABLE);//查询起售中的菜品list = dishService.listWithFlavor(dish);redisTemplate.opsForValue().set(key,list); //将他缓存起来return Result.success(list);}

在这里插入图片描述
控制台没有sql了,说明缓存已经实现了。

二 数据内容发生改变的时候,需要修改redis的内容。

修改操作、删除菜品、起售或者停售、新建菜品也需要缓存数据

private void  cleanCache(String pattern){Set keys = redisTemplate.keys(pattern);redisTemplate.delete(keys); //支持删除集合的}

删除对应的缓存数据

缓存套餐功能
spring Cache 实现了基于注解的缓存功能
在这里插入图片描述

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

对应的maven坐标

注解开发
在这里插入图片描述
Cacheable 在方法执行前查询缓存是否有数据;
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/122956.html

相关文章:

  • SPI协议个人记录
  • 【深度学习 video detect】Towards High Performance Video Object Detection for Mobiles
  • 时序预测 | MATLAB实现EEMD-LSTM、LSTM集合经验模态分解结合长短期记忆神经网络时间序列预测对比
  • 【软件工程】面向对象方法-RUP
  • Golang 的面向对象
  • STABLE DIFFUSION模型及插件的存放路径
  • Three.js 设置模型材质纹理贴图和修改材质颜色,材质透明度,材质网格
  • docker 安装mongodb 虚拟机安装mongodb
  • 在SockJS+Spring Websocket中convertAndSendToUser中的“用户”来自哪里?
  • 【软件测试】我的2023面试经验谈
  • SpringBoot 整合JDBC
  • TypeScript使用npm安装报错问题
  • 2023国赛数学建模思路 - 复盘:人力资源安排的最优化模型
  • 学习pytorch 3 tensorboard的使用
  • Linux 命令篇
  • OpenCV-SIFT算法详解
  • Java中的接口到底是什么?
  • Jpa与Druid线程池及Spring Boot整合(一): spring-boot-starter-data-jpa 搭建持久层
  • helm部署vmalert
  • 加工厂数字孪生3D可视化展示系统重塑管理模式
  • php从静态资源到动态内容
  • JavaScript:模块化【CommonJS与ES6】
  • Redis—持久化
  • 【设计模式】代理模式
  • mac arm 通过brew搭建 php+nginx+mysql+xdebug
  • 软信天成:告别手动编码,实现智能自动化云数据管理
  • 易基因:ChIP-seq等揭示转录因子NRF1调控原始生殖细胞发育、增殖和存活的表观遗传机制|科研进展
  • 35岁,体能断崖?你需要健康的生活习惯
  • mysql 习题总结
  • IL汇编语言做一个窗体