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

黑马点评练习题-给店铺类型查询业务添加缓存(String和List实现)

目录

一、前言

二、需求

三、String实现

四、List实现


一、前言

这是黑马点评实战篇-商户查询缓存-0.3缓存练习题分析,练习给店铺类型查询业务添加缓存。这里我自己是通过String实现的,当然在网上查询也能够找到其他的实现方式。String实现我会展示自己写的代码(算简单一点但是严格按照之前查询店铺缓存的来),List实现我会转载我认为其他大佬写的比较好的(实现起来会复杂一点)

二、需求

修改ShopTypeController中的queryTypeList方法,添加查询缓存

三、String实现

将ShopTypeController改为如下图所示:

在IShopTypeList中创建queryTypeList并加上注释

进入实现类中实现queryTypeList方法(核心就是完成这个实现方法)

整个实现方法完成的效果如下图:(记得注入StringRedisTemplate,在常量类中加上CACHE_SHOP_TYPE_KEY)

整个实现方法的参考代码如下:

@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {@Resourceprivate StringRedisTemplate stringRedisTemplate;/*** 查询所有商铺类型*/public Result queryTypeList() {//用String实现,opsForValue写法//public static final String CACHE_SHOP_TYPE_KEY = "cache:shopType:";String key = CACHE_SHOP_TYPE_KEY;//1.从redis查询商铺类型缓存String shopTypeJson = stringRedisTemplate.opsForValue().get(key);//2.判断是否存在if (StrUtil.isNotBlank(shopTypeJson)){//3.存在,直接返回List<ShopType> shopTypeList = JSONUtil.toList(shopTypeJson, ShopType.class);return Result.ok(shopTypeList);}//4.不存在,查询数据库  MybatisPlus的query()拿来用List<ShopType> shopTypeList = query().orderByAsc("sort").list();//5.数据库中不存在,返回错误信息if (shopTypeList == null){return Result.fail("商铺类型不存在!");}//6.数据库中存在,写入redisString jsonStr = JSONUtil.toJsonStr(shopTypeList);stringRedisTemplate.opsForValue().set(key, jsonStr);//7.返回return Result.ok(shopTypeList);}
}

启动服务测试观察DataGrip效果如下:

四、List实现

这里我转载其他大佬的博客,大家自行了解

【黑马点评】实战篇-作业-店铺类型缓存-List实现_黑马点评作业-CSDN博客

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

相关文章:

  • kafka4.0集群部署
  • 数据结构01:链表
  • docker compose 安装使用笔记
  • Docker实战:使用Docker部署TeamMapper思维导图工具
  • 【实时Linux实战系列】基于实时Linux的传感器网络设计
  • Spring Boot音乐服务器项目-登录模块
  • 【论文阅读】Fast-BEV: A Fast and Strong Bird’s-Eye View Perception Baseline
  • 基于VU13P的百G光纤FMC高性能处理板
  • Rust实战:决策树与随机森林实现
  • 板凳-------Mysql cookbook学习 (十二--------5)
  • 【RAG优化】PDF复杂表格解析问题分析
  • 阶段1--Linux中的文件服务器(FTP、NAS、SSH)
  • 从差异到协同:OKR 与 KPI 的管理逻辑,Moka 让适配更简单
  • 苹果app应用ipa文件程序开发后如何运行到苹果iOS真机上测试?
  • C# 析构函数
  • 【论文阅读 | TIV 2024 | CDC-YOLOFusion:利用跨尺度动态卷积融合实现可见光-红外目标检测】
  • 2025年07月22日Github流行趋势
  • 坑机介绍学习研究
  • 激活函数Focal Loss 详解​
  • 数组——初识数据结构
  • DMZ网络安全基础知识
  • [3-02-02].第04节:开发应用 - RequestMapping注解的属性2
  • Fluent许可与网络安全策略
  • 【kubernetes】-2 K8S的资源管理
  • Java数据结构——ArrayList
  • 【黑马SpringCloud微服务开发与实战】(五)微服务保护
  • 嵌入式学习-土堆目标检测(3)-day27
  • 【自定义一个简单的CNN模型】——深度学习.卷积神经网络
  • 【Java】SVN 版本控制软件的快速安装(可视化)
  • 洛谷刷题7..22