
一、企业项目 Redis 架构典型后端架构用户请求 ↓ NestJS 服务 ↓ ┌────────────┐ │ Redis │ │ 缓存层 │ └────────────┘ ↓ MySQL ↓ 持久化数据Redis 作为MySQL 和业务服务之间的高速缓存层。二、项目一用户信息缓存场景用户访问个人中心GET /user/profile第一次请求流程查询 Redis ↓ 不存在 ↓ 查询 MySQL ↓ 保存 Redis ↓ 返回RedisKeyuser:info:1001Value{ id:1001, name:Tom, age:20 }TTL30分钟后续请求直接Redis ↓ 返回用户信息减少数据库压力。三、项目二商品详情缓存场景商品详情/product/detail/100RedisKeyproduct:detail:100Value商品 JSON。读取Redis ↓ 命中 ↓ 返回更新商品例如修改价格正确流程更新 MySQL ↓ 删除 Redis ↓ 下一次重新加载四、项目三登录 Token 管理登录用户user:1001生成 JWTxxxxx保存Redistoken:user:1001请求JWT ↓ Redis检查 ↓ 允许访问退出删除DEL token:user:1001立即失效。五、项目四文章点赞系统需求文章id100用户user1RedisSetarticle:like:100保存user:1 user:2 user:3点赞SADD article:like:100 user:1取消SREM article:like:100 user:1数量SCARD article:like:100六、项目五排行榜系统例如商品销量排行榜商品A 1000 商品B 900 商品C 800使用ZSetKeyproduct:sales:rank增加销量ZINCRBY product:sales:rank 1 productA获取排行ZREVRANGE product:sales:rank 0 9获取 Top10。七、项目六秒杀库存扣减问题库存1010000 人同时购买。错误查询库存 ↓ 库存0 ↓ 扣减会超卖。方案Redis 分布式锁。流程请求 ↓ 获取锁 ↓ 检查库存 ↓ 扣减 Redis库存 ↓ 创建订单 ↓ 释放锁Redis库存stock:product:100数量10八、项目七购物车购物车用户1001商品商品1 数量2 商品2 数量3使用 HashKeycart:user:1001数据product:1 → 2 product:2 → 3九、项目八验证码短信验证码Keysms:code:13888888888Value123456TTL5分钟发送SET sms:code:xxx 123456 EX 300十、企业 Redis Key 规范推荐格式业务:模块:ID例如用户user:info:1001订单order:detail:2001商品product:detail:3001点赞article:like:100十一、企业 Redis 使用原则1. Redis 不作为最终数据库错误只存 Redis正确Redis 缓存 ↓ MySQL 真实数据2. 热点数据优先缓存例如商品详情首页数据热门文章3. 设置 TTL避免数据永久存在内存爆炸4. 重要操作保证一致性例如订单MySQL事务 Redis删除十二、完整企业架构总结用户 ↓ NestJS API ↓ ┌────────────────┐ │ Redis │ │ │ │ Token │ │ Cache │ │ Lock │ │ Rank │ └────────────────┘ ↓ MySQL ↓ 数据持久化十三、第六阶段总结内容掌握能力Redis基础理解缓存工具数据结构选择正确结构缓存设计提升系统性能缓存问题解决高并发异常Token企业登录管理分布式锁解决并发冲突高级应用点赞、排行、购物车高可用生产部署综合实战企业架构设计本章一句话总结Redis 在企业项目中不是替代 MySQL而是作为高速缓存层解决高并发访问、状态管理和业务性能问题。思考题精简回答用户信息为什么适合使用 Redis 缓存因为用户信息查询频繁、修改较少。放 Redis 可以减少 MySQL 查询压力提高访问速度。商品修改后为什么要删除 Redis而不是直接修改 Redis因为 Redis 只是缓存MySQL 才是真实数据。修改 MySQL 后删除缓存下次查询重新加载可以降低缓存和数据库不一致风险。登录系统中 Redis 和 JWT 分别负责什么JWT负责身份认证保存用户身份信息。Redis负责管理 Token 状态例如退出登录、强制下线、Token 过期。点赞为什么使用 Set因为Set:自动去重、判断用户是否点赞速度快。可以保证一个用户只能点赞一次排行榜为什么使用 ZSet因为 ZSet:分数、自动排序。可以快速实现排名、Top N 查询。秒杀库存为什么需要 Redis 分布式锁Redis供高速库存访问、减少数据库压力分布式锁保证同一时间只有一个请求修改库存、防止超卖Redis 和 MySQL 在企业项目中是什么关系Redis 是缓存层MySQL 是数据持久化层。