深入理解Redis-主从模式与哨兵模式
2020-06-11 14:07:31 0 举报
深入理解Redis-主从模式与哨兵模式
作者其他创作
大纲/内容
Master
Slave
其他命令:如果主节点返回其他结果,说明主节点无法处理命令,当前可能正在处理其他超时运行的脚本,则从节点断开连接,重连
超时:说明当前 socket 不可用,从节点则断开连接,重连
超时
Slave2
创建失败
哨兵2
二、主从模式的拓扑结构
从节点向主节点发送 psync 命令
4、身份认证
异步、且持续不断地将写命令发送给从节点
建立 socket 连接
从节点同步完成
节点信息保存完成之后,日志如下: 61098:S 15 May 2019 21:45:16.905 * REPLICAOF 127.0.0.1:6379 enabled (user request from 'id=3 addr=127.0.0.1:65227 fd=8 name= age=10 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=42 qbuf-free=32726 obl=0 oll=0 omem=0 events=r cmd=slaveof')
从节点内部通过定时任务(每秒执行一次)维护着复制相关的逻辑,如果发现有了新的主节点,便会根据主节点的 IP 和 PORT ,创建 socket 连接
保存主节点的ip、port信息
replicaof ip port异步
3、命令传播阶段
3、树状结构 slave 节点除了在 master 复制数据,也可以在其他 slave 节点复制数据。主要是通过引用复制中间层,降低 master 节点的负载和需要传送给从节点的数据量,这种架构可以避免复制风暴,但是延长了数据一致性。
主从节点保证的是最终一致性
一、哨兵模式的架构图示
哨兵1
PONG
创建成功
1、建立连接阶段
主从首次建立连接时是进行全量复制,当主从断开连接,从节点重新连接时,则需要根据偏移量来判断是进行全量复制还是部分复制。
Slave1
1、验证 socket 连接是否可用2、判断主节点是否可以处理请求
其他命令
目的
2、一主多从 适用于并发量较大的场景,一般都是读多写少。客户端可以将读命令发送到 salve 节点分担 master 节点压力。 实现读写分离架构,当然也保证了高可用。但是该架构需要避免复制风暴。
2、数据同步阶段
定时任务会不断地重连直到成功 或者执行 slaveof no one 取消主从复制。
为创建成功的socket建立一个专门处理复制工作的文件事件处理器,负责后续的复制工作。
发送 ping 命令
主节点根据当前状态的不同进行不同的复制流程。
PONG:说明当前 socket 连接可用,且主节点可以处理请求,复制进程继续
当socket连接创建成功之后,日志如下: 61098:S 15 May 2019 21:45:17.759 * Connecting to MASTER 127.0.0.1:6379 61098:S 15 May 2019 21:45:17.760 * MASTER <-> REPLICA sync started
3(异步)
三、主从复制的三大阶段
在数据同步前,从节点是主节点的客服端,主节点不是从节点的客户度,但是到了这个阶段以后,主从节点互为客户端,这是因为在这个阶段后,主节点会主动向从节点发送命令。
1、一主一从 最简单的拓扑结构,一般适用于没有太大的并发场景。 当 master 宕机时,slave 提供故障转移支持
1
2
0 条评论
下一页