106
|
1.问题: 既然 Redis 支持持久化,为什么不直接用它存储所有数据,反而还要搭配 MySQL 这类磁盘数据库 - Redis 的持久化是 “为缓存兜底” 设计的,而非 “作为主存储” 设计的,它在数据可靠性、存储容量、数据结构灵活性上,远不如专业的关系型 / 非关系型数据库,只适合做 “缓存” 而非 “主存储”。 - Redis 可以存储数据(甚至有不少场景会用它做临时存储),但不能替代 MySQL/PostgreSQL/MongoDB 等作为业务的主存储,仅适合做: - 临时数据存储(如会话、验证码、分布式锁); - 高性能计数 / 排序场景(如排行榜、点赞数)。 2.Redis和MYSQL区别 3.Redis 不适合做主存储的核心原因(对比 MySQL) Redis 的两种持久化方式(RDB、AOF)都有明显短板,无法保证数据 100% 不丢失,而主存储要求 “数据零丢失 / 极少丢失”: 2. 存储容量的 “硬限制”—— 内存太贵且有限 16GB 内存的服务器成本 ≈ 1TB 磁盘的服务器成本; 若把 100GB 的业务数据全存在 Redis 中,需要多台高内存服务器搭建集群,成本是 MySQL 的 10 倍以上; 即使开启 Redis 的 “内存淘汰策略”,也会导致数据被随机删除,无法作为主存储(主存储要求数据 “按需删除”,而非 “内存满了就删”)。 核心逻辑:缓存只存 “热点数据”(通常占总数据的 10% 以内),用少量内存换高性能;主存储存 “全量数据”,用廉价磁盘保证容量。 3. 数据结构与查询能力的 “局限性” Redis 的核心是 “键值对”,虽然支持 Hash/List/Set 等结构,但查询能力远不如专业数据库: 不支持事务的 ACID 完整特性:Redis 的 “事务” 仅保证命令批量执行(不支持回滚),无法处理 “转账” 这类需要原子性的场景(比如 A 扣钱、B 加钱,要么都成功,要么都失败); 不支持索引优化:MySQL 可通过索引快速查询 “按时间范围 / 条件筛选” 的数据,Redis 只能遍历键(如KEYS *),效率极低。 4. 高可用与扩容的 “复杂度” Redis Cluster 采用 “分片 + 主从”,但主节点宕机时,从节点升主可能丢失少量未同步的数据; MySQL 集群(主从 / 分库分表)支持 “数据强同步”,能保证集群中所有节点的数据一致,适合主存储。 4.总结: 是一款高性能的内存键值对数据库,也是目前业界最主流的缓存中间件,其缓存能力是它最核心、最常用的功能,核心价值是将热点数据从磁盘数据库(如 MySQL)加载到内存中,让业务系统快速读取,从而大幅提升系统响应速度、降低后端数据库的访问压力,是分布式系统中提升性能、缓解数据库瓶颈的核心组件。 Redis缓存为什么要设置过期时间 1. 保证数据一致性: 2. 控制内存占用: 3. 适配业务需求: |
今日,华为MateBookFold企业版在华为擎云官网亮相,售价暂未公布。 华为MateBookFold...
从欧美传统品牌到新进入者,锂电化已经不再是少数公司的尝试,而逐渐成为行业共识。过...
小米正式推出金沙江超薄磁吸充电宝10000mAh版,并已开启众筹,众筹价349元(零售价399...
眼下,涨价成为大模型的关键词。迈入2026年,大模型不再是优惠缩水,而是毫不掩饰地开...
极氪官方公布4月销量,当月交付新车31787辆,同比增长132%,创下品牌月交付历史新高。...
小鹏汽车官方宣布,在小鹏商城推出一款以IRON人形机器人为灵感来源的周边手办产品,定...
今晚22:00,泡泡玛特LABUBU冰箱正式开售,泡泡玛特家电京东自营旗舰店与天猫旗舰店的...
苹果公司发布了截至3月28日的2026财年第二季度财报。财报显示,苹果第二财季总营收为1...