🛩️【Redis学习笔记】高可用篇
type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary
Redis 高可用集群实现方案总结
特性 | 主从复制 | 哨兵模式 | 切片集群 |
数据分布 | 每个节点保存全量数据 | 每个节点保存全量数据 | 数据分片存储 |
读写分离 | ✓ | ✓ | ✓ |
自动故障转移 | ✗ | ✓ | ✓ |
扩展性 | 低 | 中 | 高 |
部署复杂度 | 简单 | 中等 | 复杂 |
维护成本 | 低 | 中 | 高 |
适用数据量 | GB 级别 | TB 级别 | PB 级别 |
一、主从复制(Master-Slave)

1. 基本原理
- 主节点负责写操作
- 从节点负责读操作
- 主节点数据自动同步到从节点
2. 实现步骤
3. 同步机制
- 全量同步:
- 主节点执行 BGSAVE 生成 RDB 文件
- 将 RDB 文件发送给从节点
- 从节点清空数据并加载 RDB 文件
- 增量同步:
- 主节点将写命令同步给从节点
- 使用复制积压缓冲区实现
- 从节点通过偏移量来确定同步位置
4. 优缺点
优点:
- 读写分离,提高性能
- 数据备份
- 实现简单
缺点:
- 主节点故障需要手动切换
- 无法自动故障转移
- 无法实现自动化运维
二、哨兵模式(Sentinel)

1. 基本原理
- 在主从复制基础上,增加哨兵节点监控集群状态
- 自动进行故障检测和转移
- 提供自动化运维能力
2. 实现步骤
3. 工作机制
- 监控阶段:
- 定期发送 PING 命令检测节点状态
- 节点之间互相通信交换信息
- 故障转移:
- 主观下线:单个哨兵认为主节点故障
- 客观下线:多数哨兵认为主节点故障
- 选举新主节点:根据优先级、复制偏移量等选择
- 通知客户端:通过发布/订阅机制通知
4. 配置
三、切片集群(Redis Cluster)

1. 基本原理
- 数据自动分片到多个节点
- 每个分片可以有主从节点
- 支持自动故障转移
2. 实现步骤
3. 数据分片机制
- 使用 16384 个哈希槽
- 根据 key 的 CRC16 值对 16384 取模来分配
- 每个节点负责一部分哈希槽
4. 故障转移
- 节点间通过 Gossip 协议通信
- 自动检测节点故障
- 从节点自动升级为主节点
Prev
【Redis学习笔记】缓存篇
Next
【Redis学习笔记】持久化篇
Loading...