一、Redis 集群类型及优缺点
- 主从复制
- 架构:1 主多从,主写从读,主故障需手动切从为主。
- 优点:部署简单;读写分离提读性能;从节点备份数据。
- 缺点:主节点单点故障;写请求集中于主节点易瓶颈;主需向多从推数据,压力大。
- 哨兵模式
- 架构:主从 + 哨兵,哨兵监控健康,主故障自动选从升主。
- 优点:解决主从单点故障;哨兵多节点防自身故障;兼容读写分离。
- 缺点:所有节点存全量数据,容量受限;写仍集中于主节点;哨兵监控有网络开销,故障切换短时间不可用。
- Redis Cluster(分片集群)
- 架构:数据分 16384 哈希槽,多主(各担部分槽)多从,主故障从自动升主。
- 优点:可横向扩容量和写性能;数据分片避单节点存储过载;自带高可用,无需额外哨兵。
- 缺点:部署维护复杂;不支持跨节点事务;批量操作需多节点汇总,效率低;扩缩容需手动迁哈希槽。
二、MySQL 相对 Redis 的优势
- 持久化更可靠:基于 Redo/Undo Log,事务提交不丢数据,满足 ACID 的持久性,适合金融等强一致场景;Redis 的 RDB/AOF 可能丢数据或影响性能。
- 支持完整事务:满足 ACID,可回滚,多隔离级别防并发问题;Redis 事务不支持回滚,仅简单乐观锁。
- 复杂查询强:支持 SQL 多条件筛选、排序、聚合、多表 JOIN,配索引提效;Redis 仅简单 key-value 查,复杂查需客户端处理,效率低。
- 存复杂数据关系:表结构 + 主外键定义数据关系,支持约束保完整性;Redis 需额外设计 key 存关系,维护难。
- 结构化数据扩展性好:灵活改表结构,支持分库分表等扩展;Redis 新增字段需改代码,结构化扩展弱,且生态成熟,兼容多工具。