尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

redis实现缓存1-添加商户缓存

redis实现缓存1-添加商户缓存
📅 发布时间:2026/6/19 16:17:42

首先我们理解计算机硬件层面的缓存 (CPU Cache)。

计算机存储系统是一个金字塔结构,越靠近塔顶(CPU)的部件,速度越快、容量越小、成本越高;越靠近塔底,速度越慢、容量越大、成本越低。

缓存速度最快但容量最小,用于存储CPU立即需要的数据;内存作为中间层,存储正在运行的程序和数据;磁盘提供大容量永久存储。

这种层次结构使计算机能够以合理的成本获得接近缓存速度的整体性能。

当CPU需要数据时,它首先检查缓存,如果找不到(缓存未命中),则检查内存,如果仍然找不到,最后从磁盘加载。越靠近CPU的存储层级,速度越快,但成本越高且容量越小。

image

Redis的数据主要存储在内存(RAM)中。

我们只是把Redis“当作”缓存系统来使用,这个“缓存”是一个软件架构层面的逻辑概念(角色)

业务流程图:

image

image

具体实现:

ShopServiceImpl

package com.hmdp.service.impl;import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.hmdp.dto.Result;
import com.hmdp.entity.Shop;
import com.hmdp.mapper.ShopMapper;
import com.hmdp.service.IShopService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource;import java.util.concurrent.TimeUnit;import static com.hmdp.utils.RedisConstants.CACHE_SHOP_KEY;
import static com.hmdp.utils.RedisConstants.CACHE_SHOP_TTL;/*** <p>*  服务实现类* </p>** @author ztn* @since 2025-9-12*/
@Service
public class ShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements IShopService {@ResourceStringRedisTemplate stringRedisTemplate;@Overridepublic Result queryById(Long id) {// 1.从redis中查询商铺缓存String shopJson = stringRedisTemplate.opsForValue().get(CACHE_SHOP_KEY + id);// 2.判断是否存在if(StrUtil.isNotBlank(shopJson)){// 3.存在,直接返回Shop shop = JSONUtil.toBean(shopJson, Shop.class);return Result.ok(shop);}// 4.不存在,根据id查询数据库Shop shop = getById(id);// 5.不存在,返回错误if(shop == null){return Result.fail("店铺不存在!");}// 6.存在,写入redisstringRedisTemplate.opsForValue().set(CACHE_SHOP_KEY + id, JSONUtil.toJsonStr(shop),CACHE_SHOP_TTL, TimeUnit.MINUTES);// 7.返回return Result.ok(shop);}@Override@Transactionalpublic Result update(Shop shop) {Long id = shop.getId();if (id == null) {return Result.fail("店铺id不能为空");}// 1.更新数据库updateById(shop);// 2.删除缓存stringRedisTemplate.delete(CACHE_SHOP_KEY + id);return Result.ok();}
}

相关新闻

  • Springboot 集成 飞书群消息
  • Ubuntu 24.04 LTS 登录用户和密码忘记找回方法
  • cmakelist文件中常见语句的含义

最新新闻

  • 对比7种视频去水印工具,哪个最省心 - 软件工具教程方法
  • 技术深度解析:微信聊天记录本地化解析与结构化数据导出完整解决方案
  • 电瓶车跨省托运2026全流程 新手3分钟避坑指南 - 快递物流资讯
  • 2026年正规陶瓷承烧载具厂家哪家相对靠谱:承烧板、MLCC承烧板、氧化铝氧化锆承烧板厂家名单表 - 海棠依旧大
  • 杭州出手金条别盲目找店,收的顶实时大盘价结算,杜绝各种隐形扣费 - 奢侈品回收评测
  • DataLoader排错实战:从RuntimeError到数据一致性保障

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号