当前位置: 首页 > 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.dtcms.com/a/269945.html

相关文章:

  • K8s-配置管理
  • 【web安全】SQLMap 参数深度解析:--risk 与 --level 详解
  • linux网络编程之IO多路复用模型
  • 车载以太网-TC8测试-UT(Upper Tester)
  • Redis 缓存进阶篇,缓存真实数据和缓存文件指针最佳实现?如何选择?
  • 2025年微软mos备考攻略-穷鬼版
  • 3.2 ASPICE的项目监控
  • 内网服务器怎么设置公网远程访问? windows桌面连接和Linux自带SSH外网异地跨网用完整步骤教程
  • K8s——配置管理(2)
  • 基于springboot的非遗传承宣传平台
  • Spring 框架实现账户转账功能全解析
  • 开疆智能Profinet转DeviceNet网关连接掘场空气流量计配置案例
  • 时序数据库:高效处理时间序列数据的核心技术
  • 二进制安全-汇编语言-04-第一个程序
  • 华中科大首创DNN衍射量子芯片登《Science Advances》:3D打印实现160μm³高维逻辑门
  • Transformer-BiGRU、Transformer、CNN-BiGRU、BiGRU、CNN五模型回归预测对比,Matlab代码实现
  • 神经网络之BP算法
  • 基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架
  • iOS 性能测试工具全流程:主流工具实战对比与适用场景
  • 5-Kafka-replication(副本机制)概念
  • 自动化一次通过率
  • 《Java 反射全攻略1》
  • LLM探索的时代
  • Java常用加密算法详解与实战代码 - 附可直接运行的测试示例
  • 【Flutter】面试记录
  • 从历史航拍图像中去除阴影
  • maven 发布到中央仓库之 Ignore Licence-04
  • RabbitMQ第一章(MQ基础与RocketMQ使用手册)
  • 【踩坑实录】RabbitMQ 高并发异常“爆仓”事故还原与配置优化实战指南
  • Next.js 实战笔记 2.0:深入 App Router 高阶特性与布局解构