redis-23.主从复制-概念

互联网”三高”架构

  • 高并发
  • 高性能
  • 高可用

你的”Redis”是否高可用

单机redis的风险与问题

  • 问题1.机器故障

    • 现象:硬盘故障、系统奔溃
    • 本质:数据丢失,很可能对业务造成灾难性打击
    • 结论:基本上会放弃使用redis
  • 问题2.容量瓶颈

    • 现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存
    • 本质:穷,硬件条件跟不上
    • 结论:放弃使用redis
  • 结论
    为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份

多台服务器连接方案

  • 提供数据方:master
    主服务器,主节点,主库
    主客户端

  • 接收数据方:slave
    从服务器,从节点,从库
    从客户端

  • 需要解决的问题:
    数据同步

  • 核心工作:
    master的数据复制到slave中

AIifrqIOYV.png!large

主从复制

主从复制即将master中的数据即时、有效的复制到slave中

特征:一个master可用拥有多个slave,一个slave只对应一个master

职责:

  • master:

    • 写数据
    • 只想写操作时,将出现变化的数据自动同步到slave
    • 读数据(可忽略)
  • slave:

    • 读数据
    • 写数据(禁止)

高可用集群

cZ5WAA3wHy.png!large

主从复制的作用

  • 读写分离:master写,slave读,提高服务器的读写负载能力
  • 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
  • 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复
  • 数据冗余:实现数据备份,是持久化外的一个数据冗余方式
  • 高可用基石:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案

主从复制工作流程

总述

  • 主从复制过程大体可以分为3个阶段
    • 建立连接阶段(即准备阶段)
    • 数据同步阶段
    • 命令传播阶段

P9xhYZSkPx.png!large

阶段一:建立连接阶段

  • 建立slave到master的连接,使master能够识别到slave,并保存slave端口号

建立连接阶段工作流程

步骤1:设置master的地址和端口,保存master信息
步骤2:建立socket连接
步骤3:发送ping命令(定时器任务)
步骤4:身份验证
步骤5:发送slave端口信息
至此,主从连接成功

状态:
slave:保存master的地址与端口
master:保存slave的端口
总体:之间创建了连接的socket

fDnQvemmlF.png!large

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!