苍穹外卖Day05笔记

张开发
2026/4/21 7:27:20 15 分钟阅读

分享文章

苍穹外卖Day05笔记
苍穹外卖Day05笔记一、Redis 常用命令1. 通用命令keys pattern查找符合规则的 keyexists key判断 key 是否存在type key查看 key 对应值的类型del key删除指定 key2. 字符串Stringset key value设置键值对get key获取 valuesetex key seconds value设置并指定过期时间setnx key value不存在才设置用于分布式锁3. 哈希Hashhset key field value设置字段hget key field获取字段hdel key field删除字段hkeys key获取所有字段名hvals key获取所有字段值4. 列表Listlpush key value1 value2从左边插入lrange key start stop获取范围内元素rpop key移除并获取最后一个元素llen key获取列表长度5. 集合Setsadd key member1 member2添加元素smembers key获取所有元素scard key获取元素个数sinter key1 key2求两个集合交集sunion key1 key2求两个集合并集srem key value删除指定元素6. 有序集合ZSetzadd key score member添加元素带分数zrange key start stop [withscores]按排名范围查询zincrby key increment member增加分数zrem key member删除元素二、Swagger 优点自动生成接口文档代码写完接口文档自动生成无需手动编写。接口信息清晰包含接口地址、请求方式、参数、返回值、错误码等。支持在线调试可直接在页面发送请求、查看响应方便前后端联调。注解驱动侵入低使用Api、ApiOperation等注解即可不影响业务逻辑。统一接口规范前后端共用一份文档减少沟通歧义。实时同步更新代码修改后文档自动更新避免文档过时。支持环境控制可在开发/测试环境开启生产环境关闭。三、Redis vs MySQL 对比1. 核心差异对比表维度RedisMySQL存储类型内存数据库支持持久化磁盘数据库关系型数据结构支持字符串、哈希、列表、集合、有序集合等基于表结构支持关系一对一/一对多等读写性能读写速度极快内存操作读写速度适中磁盘IO事务支持弱事务仅保证单命令原子性强事务ACID特性数据一致性最终一致性分布式场景强一致性持久化方式RDB、AOF日志磁盘存储索引支持简单索引如有序集合分数索引丰富索引主键、唯一、联合、全文索引查询能力简单查询支持少量聚合交集/并集复杂SQL查询联表、分组、聚合等2. 优缺点分析Redis 优点超高读写性能单机QPS可达10万支持丰富数据结构适配多样业务场景支持过期策略、分布式锁适配缓存/限流等场景支持集群部署可水平扩展。Redis 缺点内存成本高不适合存储海量数据事务能力弱无法满足强事务要求复杂查询能力差不支持联表等操作数据易丢失内存存储依赖持久化。MySQL 优点支持复杂SQL查询和事务满足业务逻辑要求磁盘存储成本低可存储海量结构化数据强一致性适配金融/订单等核心业务生态完善工具链丰富备份、监控等。MySQL 缺点读写性能受磁盘IO限制远低于Redis扩展复杂分库分表成本高数据结构单一仅支持表结构存储。3. 适配场景Redis 适配场景缓存热点数据商品详情、用户信息计数器点赞数、访问量、库存计数限流接口限流、秒杀限流分布式锁多服务并发控制消息队列简单的生产消费场景排行榜有序集合实现实时排名。MySQL 适配场景核心业务数据存储订单、用户、商品基础信息复杂业务逻辑查询联表、分组统计强事务要求场景支付、转账海量结构化数据存储历史订单、日志。4. 协同使用场景实际项目中如苍穹外卖二者通常协同使用Redis 作为缓存存储热点数据如菜品列表减轻MySQL压力MySQL 存储核心数据如订单、用户信息保证数据一致性写操作先更MySQL再更Redis或删除缓存读操作优先查Redis未命中再查MySQL并回写Redis。总结Redis 核心优势是高性能、丰富数据结构适配缓存/限流/排行榜等场景不适合海量存储和强事务MySQL 核心优势是强事务、复杂查询、低成本存储适配核心业务数据存储性能是短板实际开发中二者协同Redis 解决性能问题MySQL 解决数据存储和业务逻辑问题。

更多文章