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

黑马点评系列问题之P37商户点评缓存作业,用了string和list两种方法,可以直接复制粘贴

 为了保持所有代码的装逼性,我们先在RedisContants这个类里面添加一个常量。后面会用。

用String类型的方法

controller

    @GetMapping("list")public Result queryTypeList() {return typeService.queryTypeList();}

ShopTypeServiceImpl

package com.hmdp.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.hmdp.dto.Result;
import com.hmdp.entity.ShopType;
import com.hmdp.mapper.ShopTypeMapper;
import com.hmdp.service.IShopTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import static com.hmdp.utils.RedisConstants.SHOP_LIST_KEY;
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {@Resourceprivate StringRedisTemplate stringRedisTemplate;@Overridepublic Result queryTypeList() {String shopListJson = stringRedisTemplate.opsForValue().get(SHOP_LIST_KEY);if (StrUtil.isNotBlank(shopListJson)) {List<ShopType> shopTypeList = JSONUtil.toList(shopListJson, ShopType.class);return Result.ok(shopTypeList);}List<ShopType> shopTypeList = query().orderByAsc("sort").list();if (CollectionUtil.isEmpty(shopTypeList)) {return Result.fail("出错了,数据不存在");}String jsonStr = JSONUtil.toJsonStr(shopTypeList);stringRedisTemplate.opsForValue().set(SHOP_LIST_KEY, jsonStr);return Result.ok(shopTypeList);}
}

用list类型的方法

(前面都一样)。将对应部分给他提换掉就可以了。

@Resourceprivate StringRedisTemplate stringRedisTemplate;@Overridepublic Result queryTypeList() {List<String> shopTypeList = stringRedisTemplate.opsForList().range(SHOP_LIST_KEY, 0, -1);if(CollectionUtil.isNotEmpty(shopTypeList)){List<ShopType> list = JSONUtil.toList(shopTypeList.get(0), ShopType.class);return Result.ok(list);}List<ShopType> typeList = query().orderByAsc("sort").list();if(CollectionUtil.isEmpty(typeList)){return Result.fail("列表信息不存在");}String jsonStr = JSONUtil.toJsonStr(typeList);stringRedisTemplate.opsForList().leftPushAll(SHOP_LIST_KEY, jsonStr);return Result.ok(typeList);}
http://www.lryc.cn/news/582653.html

相关文章:

  • 微软上线Deep Research:OpenAI同款智能体,o3+必应双王炸
  • 专题:2025数据资产AI价值化:安全、战略与应用报告|附400+份报告PDF、原数据表汇总下载
  • openEuler2203sp4-vg磁盘组中剔除磁盘
  • 香港站群服务器与普通香港服务器对比
  • Windows 系统安装与使用 Claude Code 全攻略
  • 【LeetCode 热题 100】142. 环形链表 II——快慢指针
  • OpenWebUI(4)源码学习-后端routers路由模块
  • 车载以太网-TC8测试-UT(Upper Tester)
  • C语言使用Protobuf进行网络通信
  • 2025年微软mos备考攻略-穷鬼版
  • claude code-- 基于Claude 4 模型的智能编程工具,重塑你的编程体验
  • 【DOCKER】-2 docker基础
  • 字符串大小比较的方式|函数的多返回值
  • python transformers库笔记(BertForTokenClassification类)
  • BM10 两个链表的第一个公共结点
  • Linux_常见指令和权限理解
  • OSPFv3与OSPFv2不同点
  • 【Spring WebSocket详解】Spring WebSocket从入门到实战
  • springboot单体项目的发布生产优化
  • 【保姆级目标检测教程】Ubuntu 20.04 部署 YOLOv13 全流程(附训练/推理代码)
  • 基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
  • 【WEB】Polar靶场 16-20题 详细笔记
  • 从0到1搭建ELK日志收集平台
  • OpenCV探索之旅:形态学魔法
  • mit6.5840-lab3-3D-SnapShot-25Summer
  • nmon使用方法
  • 人工智能大模型(LLM)论文17道菜
  • Python3完全新手小白的学习手册 12代码测试
  • 7 种简单方法将三星文件传输到电脑
  • go入门 - day1 - 环境搭建