主从复制工作流程|学习笔记

简介: 快速学习主从复制工作流程

开发者学堂课程【Redis 入门到精通(进阶篇)主从复制工作流程】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/765/detail/13457


主从复制工作流程

 

目录

心跳机制

心跳阶段注意事项

主从复制工作流程(完整)

 

本章主要讲解心跳机制以及再次详细讲解主从复制完整的工作流程

 

一,心跳机制

1.进入命令传播阶段候,master  slave 间需要进行信息交换,使用心跳机制进行维护,实现双方连接保持在线

2.master 心跳:

(1).指令:PING

(2).周期:由repl-ping-slave-period 决定,默认10秒

(3).作用判断 slave 是否在线

(4).查询:INFOreplication  获取 slave 最后一次连接时间间隔,lag项维持在0或1视为正常

以下为在 info 中查到的运行结果的代码可供参考:

keyspace_hits:2

keyspace_misses:0

pubsub_channels:0

pubsub_patterns:0

latest_fork_usec:118

migrate cached sockets:0

slave_expires_tracked_keys:0

active_defrag_hits:0

active_defrag_misses:0

active_defrag_key_hits:0

active_defrag_key_misses:0

# Replication role:master

connected _slaves:1

slave0:ip=127.0.0.1.port=6380.state=online offser-4004,1ag=1 master_replid:5e4796996346598c6f3f4742efe609039

6f016 master_replid2:00000000000000000000000000000000000000

master_rep1_offset:4018

second_rep1_offset:-1

repl_backlog_active:1

repl_back1og_size:1048576

repl_back1og first byte_offset:1

repl_back1og histlen:4018

# CPU

used_cpu_sys:2.11

used_cpu_user:1.32

used_cpu_sys_children:0.00

used_cpu_user_children:0.00

# Cluster

cluster_enabled:0

# Keyspace

db0:keys=2 expires=0,avg_tt1=0

1270.0.1:6379>

3.slave 心跳任务

(1).指令:REPLCONF ACK{offset)

(2).周期:1秒

(3)作用:

.汇报 slave 自己的复制偏移量,获取最新的数据变更指令

.判断 master 是否在线

 

二,心跳阶段注意事项

1.当 slave 多数掉线,或延迟过高时,master 为保障数据稳定性,将拒绝所有信息同步操作

min-slaves-to-write 2

min-slaves-max-lag8

Slave 数量少于2个,或者所有 slave 的延迟都大于等于10秒时,强制关闭 master 写功能,停止数据

2.Slave 数量由 slave 发送 REPLCONFACK 命令做确认

3.Slave 延迟3.由 slave 发送 REPLCONFACK 命令做确认

 

三,主从复制工作流程(完整)

以下为数字大小作为流程的顺序

1.master 方面流程

(1).发送命令:ping

(2).接收命令,判定 offset 是否在复制缓冲区中

(3).①如果不在缓冲区,执行全量复制

②如果在缓冲区,且 offset  offset 相同,忽略

③如果在缓冲区,且 offset  offset 不相同

发送 +CONTINUE offset

通过 socket 发送复制缓冲区中 offset  offset 的数据

2.slave 方面流程

(1).发送命令:replconfack offset

(4).收到+CONTINUE 保存 

master  offset

接收信息后,执行 bgrewriteaof,恢复数据

注意:master 部分的如果不在缓冲区,执行全量复制为全量复制。Slave 部分的发送命令与收到+CONTINUE 保存masteroffset,接收信息后,执行 bgrewriteaof,恢复数据部分为命令传播阶段。

相关文章
|
SQL 存储 关系型数据库
MySQL主从复制之原理&一主一从部署流程—2023.04
MySQL主从复制之原理&一主一从部署流程—2023.04
654 0
|
存储 数据管理 关系型数据库
分布式系统设计之套路Master-Slave架构
分布式系统设计之套路Master-Slave架构
1230 0
|
NoSQL Redis 数据库
阿里云Redis集群版简要介绍
产品简介 云数据库 Redis 提供集群版实例,轻松突破 Redis 自身单线程瓶颈,可极大满足对于 Redis 大容量或高性能的业务需求。 云数据库 Redis 集群版内置数据分片及读取算法,整体过程对用户透明,免去用户开发及运维 Redis 集群的烦恼。
13014 0
|
5月前
|
SQL 关系型数据库 MySQL
(二十五)MySQL主从实践篇:超详细版读写分离、双主热备架构搭建教学
在上篇《主从原理篇》中,基本上把主从复制原理、主从架构模式、数据同步方式、复制技术优化.....等各类细枝末节讲清楚了,本章则准备真正对聊到的几种主从模式落地实践,但实践的内容通常比较枯燥乏味,因为就是调整各种配置、设置各种参数等步骤。
719 3
|
SQL 存储 运维
MySQL主从复制与读写分离(详细部署案例)
MySQL主从复制与读写分离(详细部署案例)
414 0
|
算法
分布式复制系统设计-总结
复制或多副本技术的目的: 高可用 即使某台器(或多台机器,或整个IDC)故障,系统也能保持正常运行 连接断开与容错 允许应用程序在网络中断时继续工作 低延迟 将数据放置在距离用户较近地,以更快交互 可扩展性 采用多副本,大幅提高系统的读吞吐量
83 0
|
NoSQL 数据库 Redis
主从复制-工作流程(2)数据同步阶段(简)|学习笔记
快速学习主从复制-工作流程(2)数据同步阶段(简)
主从复制-工作流程(2)数据同步阶段(简)|学习笔记
|
NoSQL Redis 开发者
主从复制工作流程|学习笔记
快速学习主从复制工作流程
主从复制工作流程|学习笔记
|
存储 消息中间件 RocketMQ
双主双从(2m-2s)集群介绍和工作流程说明|学习笔记
快速学习双主双从(2m-2s)集群介绍和工作流程说明
双主双从(2m-2s)集群介绍和工作流程说明|学习笔记
|
NoSQL Redis 开发者
主从复制简介|学习笔记
快速学习主从复制简介
主从复制简介|学习笔记