Redis主从复制

本文介绍了Redis主从复制的重要性和作用,包括读写分离、负载均衡、故障恢复和数据冗余。详细阐述了主从复制的三个阶段:建立连接、数据同步(全量复制和增量复制)及命令传播,以及复制积压缓冲区和偏移量校验的重要性。此外,还提及了主从服务器的配置和断开连接的方式。
摘要由CSDN通过智能技术生成

Redis主从复制

前言:先了解一下互联网“三高架构”:
1、高并发
2、高性能
3、高可用
我们知道,服务器是很容易出现一些事故导致宕机的,如果是单台服务器,那么会极大影响用户体验,所以我们需要多台服务器协作,进而追求更高的可用性,如下:

在这里插入图片描述
多台服务器连接方案:

在这里插入图片描述
其中,主服务器(主库)用于客户端写数据,从库用于客户端读数据。

主从复制的核心:
解决主库和从库数据同步问题,将主库数据及时有效传递给从库!!

主从复制作用:

1、读写分离:主库负责写,从库负责读,提高服务器负载能力
2、负载均衡:基于主从结构,由从库分担主库的负载,并根据需求的变化,改变从库的数量,通过多个从节点分担数据读取负载,大大提高数据库并发量与数据吞吐量
3、故障恢复:当主服务器损坏,可以选择一个从服务器替代主服务器的地位,继续提供服务,实现故障的快速恢复
4、数据冗余:实现数据的热备份,是持久化之外的一种备份数据方式
5、高可用基石:基于主从复制,可以构建哨兵模式与集群,实现Redis高可用方案

主从复制的工作流程:

阶段一:建立主从连接
建立slave(从库)到master(主库)的连接,使master能够识别slave,并且保存slave端口号。

在这里插入图片描述
建立主从连接的方式:
1、方式一:从服务器对应的客户端发送命令

slaveof    主服务器ip    主服务器端口号

2、方式二:启动slave服务器时就选择连接master

redis-server redis.conf  --主服务器ip    主服务器端口号

3、方式三:直接在slave的conf文件中添加配置信息

slaveof    主服务器ip    主服务器端口号

断开主从复制连接的方式:
从客户端执行指令:

slaveof no one

阶段二:数据同步
数据同步共分两步:
1、全量复制:
即master通过bgsave生成RDB文件然后通过socket发送给slave,而后slave通过该文件恢复数据。
2、部分复制(增量复制):
在全量复制过程中,master仍然会继续产生数据变化,于是master会将后续的指令保存在一个缓冲区,当slave完成RDB恢复后,master将缓冲区指令发送给slave,slave先进行重写,再执行重写后的指令恢复数据。

在这里插入图片描述
注意:缓冲区容量大小一定要合理设置,同时数据同步应该避开流量高峰期,防止master阻塞

对master的说明:
在这里插入图片描述
在这里插入图片描述
对slave的说明:

在这里插入图片描述
阶段三:命令传播
命令传播概念:
master数据库中数据变化之后,导致主从数据库不一致,此时需要让主从数据同步,同步的动作称为命令传播。
命令传播动作:
master将接收到的数据变化变更成一条命令(AOF形式的字节数据)发送给slave,slave接收后执行此命令,用以同步数据。
复制积压缓冲区:
为了防止短时间断网导致命令传播的出错,master服务器创建了一个队列,这个先进先出的队列就是复制积压缓冲区(默认大小为1M),所有需要传播给slave的命令都要先进入此队列,再传送给slave.
缓冲区的组成:
1、偏移量
2、字节值
缓冲区中每一个字节都对应一个偏移量,master通过缓冲区将aof字节信息传递给slave,在这个过程中,不论是master还是slave都要记录发送完或者接受完的信息的偏移值,发收过程结束后进行比较,如果双方偏移量相同,即说明信息无误,如果发生一方网络故障,通过比较偏移量,可以发现不对劲,就能马上重新发送!
在这里插入图片描述
runid概念了解下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值