redis-23.主从复制-概念
互联网”三高”架构
- 高并发
- 高性能
- 高可用
你的”Redis”是否高可用
单机redis的风险与问题
问题1.机器故障
- 现象:硬盘故障、系统奔溃
- 本质:数据丢失,很可能对业务造成灾难性打击
- 结论:基本上会放弃使用redis
问题2.容量瓶颈
- 现象:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存
- 本质:穷,硬件条件跟不上
- 结论:放弃使用redis
结论
为了避免单点Redis服务器故障,准备多台服务器,互相连通。将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的。即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份。
多台服务器连接方案
提供数据方:master
主服务器,主节点,主库
主客户端接收数据方:slave
从服务器,从节点,从库
从客户端需要解决的问题:
数据同步核心工作:
master的数据复制到slave中
主从复制
主从复制即将master中的数据即时、有效的复制到slave中
特征:一个master可用拥有多个slave,一个slave只对应一个master
职责:
master:
- 写数据
- 只想写操作时,将出现变化的数据自动同步到slave
- 读数据(可忽略)
slave:
- 读数据
- 写数据(禁止)
高可用集群
主从复制的作用
- 读写分离:master写,slave读,提高服务器的读写负载能力
- 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高Redis服务器并发量与数据吞吐量
- 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复
- 数据冗余:实现数据备份,是持久化外的一个数据冗余方式
- 高可用基石:基于主从复制,构建哨兵模式与集群,实现Redis的高可用方案
主从复制工作流程
总述
- 主从复制过程大体可以分为3个阶段
- 建立连接阶段(即准备阶段)
- 数据同步阶段
- 命令传播阶段
阶段一:建立连接阶段
- 建立slave到master的连接,使master能够识别到slave,并保存slave端口号
建立连接阶段工作流程
步骤1:设置master的地址和端口,保存master信息
步骤2:建立socket连接
步骤3:发送ping命令(定时器任务)
步骤4:身份验证
步骤5:发送slave端口信息
至此,主从连接成功
状态:
slave:保存master的地址与端口
master:保存slave的端口
总体:之间创建了连接的socket
本作品采用《CC 协议》,转载必须注明作者和本文链接