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个阶段
- 建立连接节点(即准备阶段)
- 数据同步阶段
- 命令传播阶段 </