聊聊 Redis 的高可用

核心概念
  • 高可用性(HA):确保系统在高于平均水平的时间内保持约定的运行性能水平,通常指正常运行时间。
  • Redis:内存数据库,数据存储在内存中,避免单点故障是关键。
Redis 高可用手段
  1. Redis 主从复制

    • 功能:多个 Redis 节点组成集群,主节点操作数据,从节点同步并提供查询。
    • 同步类型
      • 全量复制:首次数据同步。
      • 增量复制:网络断连后继续同步。
  2. Redis 哨兵模式

    • 功能:监控 Redis 节点,自动故障转移,配置提供者,通知功能。
    • 实现
      • 监控:检查主从实例状态。
      • 自动故障转移:主实例不可用时,从节点升级为主节点。
      • 配置提供者:客户端通过哨兵获取主节点地址。
      • 通知:故障转移结果通知客户端。
  3. Redis 集群(Cluster)

    • 功能:分布式数据库方案,通过分片管理数据,具备复制、故障转移和流量调度能力。
    • 特点:允许水平扩展,数据划分为16384个哈希槽。
主从复制详解
  • 全量复制流程

    1. 建立主从关系 :通过 replicaof 命令。
    2. 主从库间建立连接、协商同步
      • 从库发送 psync 命令,包含主库的 runIDoffset
    3. 主库将所有数据同步给从库
      • 主库执行 bgsave 生成 RDB 文件,发送给从库。
      • 从库清空当前数据库,加载 RDB 文件。
      • 主库记录写操作到 replication buffer
    4. 主库发送写命令给从库
      • 发送 replication buffer 中的修改操作。
  • 增量复制

    • 网络断连后采用,控制复制成本。
    • 使用 replication bufferreplication_backlog 缓冲区。
哨兵模式详解
  • 监控:哨兵检查主从实例状态。
  • 自动故障转移
    • 主观下线:哨兵未收到有效响应。
    • 客观下线:多个哨兵同意主实例不可用。
    • Leader 选举:选出 leader 进行故障转移。
    • 故障转移
      • 选择新主节点,更新其他节点配置。
      • 将旧主节点变成新主节点的从节点。
Redis 集群详解
  • 集群介绍

    • 数据分片,每个节点管理部分数据。
    • 使用 Gossip 协议交互节点信息。
  • 扩展方式

    • 纵向扩展(scale up):提升单个实例硬件资源。
    • 横向扩展(scale out):增加实例数,分摊数据。
总结
  • 高可用性:数据尽量不丢失,服务尽可能可用。
  • 数据持久化:AOF 和 RDB 保证数据安全。
  • 多节点:提高服务吞吐量和容量。
  • 读写分离:增加 Redis 的读负载能力。
  • 哨兵模式:实现故障自动转移,适用于业务规模扩展。
  • Redis Cluster:解决大数据量存储问题,便于横向扩展。
相关推荐
Leon-Ning Liu10 小时前
【真实经验分享】Oracle 索引并行度引发的进程风暴分析与处理
数据库·oracle
大数据魔法师10 小时前
MongoDB(十) - MongoDB分片集操作
数据库·mongodb
数据库知识分享者小北10 小时前
AnalyticDB PostgreSQL 版软件 V2.0:安全可靠的全场景一站式数据仓库
数据库·postgresql·信创数据库·安全可靠数据库·analyticdb·阿里云 analyticdb
韦胖漫谈IT10 小时前
B+ 树:为什么数据库索引偏爱它
数据库·oracle
CIO4010 小时前
IT故事(7): CIO之“10亿元库存数字化“
数据库
Database_Cool_10 小时前
PB 级海量数据需要实时分析,应该选择什么数仓产品?阿里云 AnalyticDB MySQL 是首选
数据库·数据仓库·mysql·阿里云
该昵称用户已存在10 小时前
双碳目标下的能源中台自建之路:MyEMS 百万测点场景的架构自主权与数据库选型为题
数据库·架构·能源
二宝哥10 小时前
大数据之数据仓库与数据库区别
大数据·数据库·数据仓库
AOwhisky10 小时前
MySQL 学习笔记(第二期):SQL 语言之库表操作与数据类型
linux·运维·数据库·笔记·sql·学习·mysql
行业研究员10 小时前
2026 AI Agent记忆解决方案:腾讯云数据库提供全场景支撑
数据库·人工智能·腾讯云·ai记忆