Redis 笔记二

文章目录什么是主从模式主从之间什么时候进行第一次同步主从级联模式分担全量复制时的主库压力主从库间网络断了怎么办?哨兵机制的基本流程主观下线与客观下线如何筛选 + 打分?哨兵之间的选举基于 pub/sub 机制的哨兵集群组成这样哨兵节点之间就完成了彼此的通信建立。基于 pub/sub 机制的客户端事件通知由哪个哨兵执行主从切换?切片集群(Redis 官网集群模式)Redis 如何保存更多数据?数据切片和实例的对应分布关系客户端如何定位数据?MOVED 命令ASK 命令什么是主从模式那我们总说的 Red.
摘要由CSDN通过智能技术生成


什么是主从模式

那我们总说的 Redis 具有高可靠性,又是什么意思呢?

其实,这里有两层含义:一是数据尽量少丢失,二是服务尽量少中断。AOF 和 RDB 保证了前者,而对于后者,Redis 的做法就是增加副本冗余量,将一份数据同时保存在多个实例上。即使有一个实例出现了故障,需要过一段时间才能恢复,其他实例也可以对外提供服务,不会影响业务使用。

实际上,Redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。

  • 读操作:主库、从库都可以接收;
  • 写操作:首先到主库执行,然后,主库将写操作同步给从库。

主从之间什么时候进行第一次同步

当我们启动多个 Redis 实例的时候,它们相互之间就可以通过 replicaof(Redis 5.0 之前使用 slaveof)命令形成主库和从库的关系,之后会按照三个阶段完成数据的第一次同步。

例如,现在有实例 1(ip:172.16.19.3)和实例 2(ip:172.16.19.5),我们在实例 2 上执行以下这个命令后,实例 2 就变成了实例 1 的从库,并从实例 1 上复制数据:

replicaof 172.16.19.3 6379

在这里插入图片描述

简单来说就是以下流程:

  1. 第一阶段,主从库间建立连接、协商同步的过程,主要是为全量复制做准备
  2. 第二阶段,主库将所有数据同步给从库。从库收到数据后,在本地完成数据加载。这个过程依赖于内存快照生成的 RDB 文件。
  3. 第三阶段,主库会把第二阶段执行过程中新收到的写命令,再发送给从库。具体的操作是,当主库完成 RDB 文件发送后,就会把此时 replication buffer 中的修改操作发给从库,从库再重新执行这些操作。这样一来,主从库就实现同步了。

也就是说从库全量复制完了之后,之后都是加载 replication buffer 去实现数据同步。

主从级联模式分担全量复制时的主库压力

一主多从的模式下,所有的从库都要和主库进行全量复制的话,就会导致主库忙于 fork 子进程生成 RDB 文件,进行数据全量同步。fork 这个操作会阻塞主线程处理正常请求,从而导致主库响应应用程序的请求速度变慢。此外,传输 RDB 文件也会占用主库的网络带宽,同样会给主库的资源使用带来压力。

那么,有没有好的解决方法可以分担主库压力呢?

主 - 从 - 从模式。这个过程也称为基于长连接的命令传播,可以避免频繁建立连接的开销。

replicaof 所选从库的IP 6379

在这里插入图片描述

主从库间网络断了怎么办?

采用增量模式同步

当主从库断连后,主库会把断连期间收到的写操作命令,写入 replication buffer,同时也会把这些操作命令也写入 repl_backlog_buffer 这个缓冲区。

repl_backlog_buffer 是一个环形缓冲区,主库会记录自己写到的位置,从库则会记录自己已经读到的位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值