本文来源: admin
73
|
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. 适配业务需求: |
中国铁路昨晚发文称,五一假期火车票开售以来,购票需求旺盛。为最大限度满足旅客购票...
华为Pura X Max将于4月20日正式亮相。作为行业首款大阔折,其独特的折叠形态引发了科...
苹果发文宣布,《明日方舟:终末地》移动设备光追首发登陆iPhone 17 Pro和iPad Pro。...
小米汽车创始人雷军正式开启小米新SU7京沪续航挑战,全程1265公里并同步直播。本次测...
上海铁路公安处乘警支队近日成功侦破一起列车盗窃案,嫌疑人张某盗窃旅客贵重财物后,...
在上海见到100多位小红书电商商家之后,我们非常明确感受到,小红书电商正在长起来一...
问界M6真是太火了,自从3月23号开启预订,累计预订量已经突破10万台。很多订车的朋友...
华为WATCH ULTIMATE DESIGN非凡大师星钻绽放款官宣,新品将于4月20日发布。据了解,这...