🛩️【Redis学习笔记】高可用篇

type
status
date
slug
summary
tags
category
icon
password
Blocked by
Blocking
AI summary

Redis 高可用集群实现方案总结

特性
主从复制
哨兵模式
切片集群
数据分布
每个节点保存全量数据
每个节点保存全量数据
数据分片存储
读写分离
自动故障转移
扩展性
部署复杂度
简单
中等
复杂
维护成本
适用数据量
GB 级别
TB 级别
PB 级别

一、主从复制(Master-Slave)

notion image

1. 基本原理

  • 主节点负责写操作
  • 从节点负责读操作
  • 主节点数据自动同步到从节点

2. 实现步骤

3. 同步机制

  1. 全量同步
      • 主节点执行 BGSAVE 生成 RDB 文件
      • 将 RDB 文件发送给从节点
      • 从节点清空数据并加载 RDB 文件
  1. 增量同步
      • 主节点将写命令同步给从节点
      • 使用复制积压缓冲区实现
      • 从节点通过偏移量来确定同步位置

4. 优缺点

优点:
  • 读写分离,提高性能
  • 数据备份
  • 实现简单
缺点:
  • 主节点故障需要手动切换
  • 无法自动故障转移
  • 无法实现自动化运维

二、哨兵模式(Sentinel)

notion image

1. 基本原理

  • 在主从复制基础上,增加哨兵节点监控集群状态
  • 自动进行故障检测和转移
  • 提供自动化运维能力
 

2. 实现步骤

3. 工作机制

  1. 监控阶段
      • 定期发送 PING 命令检测节点状态
      • 节点之间互相通信交换信息
  1. 故障转移
      • 主观下线:单个哨兵认为主节点故障
      • 客观下线:多数哨兵认为主节点故障
      • 选举新主节点:根据优先级、复制偏移量等选择
      • 通知客户端:通过发布/订阅机制通知

4. 配置

三、切片集群(Redis Cluster)

notion image

1. 基本原理

  • 数据自动分片到多个节点
  • 每个分片可以有主从节点
  • 支持自动故障转移

2. 实现步骤

3. 数据分片机制

  • 使用 16384 个哈希槽
  • 根据 key 的 CRC16 值对 16384 取模来分配
  • 每个节点负责一部分哈希槽

4. 故障转移

  • 节点间通过 Gossip 协议通信
  • 自动检测节点故障
  • 从节点自动升级为主节点
Prev
【Redis学习笔记】缓存篇
Next
【Redis学习笔记】持久化篇
Loading...
Article List