Redis 主从复制

Redis主从复制是为了解决单台服务器故障和容量瓶颈问题,通过复制数据到多个服务器实现高可用和数据备份。主从架构包括一个master和多个slave,master负责写数据并同步到slave,slave只读数据。主从复制工作流程包括建立连接、数据同步和命令传播三个阶段,其中心跳机制用于保持连接并同步数据。
摘要由CSDN通过智能技术生成

主从复制简介

互联网的“三高”架构:高并发、高性能、高可用。

单台redis服务器容易出现的问题:1、机器故障。2、容量瓶颈。

解决方案:可以准备多台服务器互相连通。将数据复制多个副本保存到多个服务器中,并保证数据是同步的。即便有一台服务器出现了故障,其他服务器仍然可以运行,实现高可用,同时实现数据冗余备份

image-20210801155542920

主从复制即将master服务器中的数据即时、有效的复制到slave服务器中

一个master可以有多个slave,一个slave只能由一个master。

  • master的职责:1、写数据。2、执行写操作时,将出现变化的数据同步到slave中。3、读数据(忽略)

  • slave的职责:1、读数据。2、写数据(禁止)

高可用集群

如果一台slave出现了问题,那么此时可以靠其它的slave提供服务。如果master出现了问题,那么此时临时选出一个slave当作master。如果master压力过大,也可某个slave也当作master使用,在它下面放slave。

主从复制作用

image-20210801160633872

主从复制工作流程

image-20210801160832342

建立连接阶段

image-20210801161303559

主从连接(slave连master)

  • 方式一:客户端发送命令
slaveof <masterip> <masterport>

先把配置文件的守护进程关了,把日志去掉。

image-20210801161928845

启动两个服务器和两个客户端

image-20210801162630297

此时用master连上6379服务器,设置一个key,在6380可以取到这个key的值

image-20210801162823517

  • 方式2:启动时带上参数
redis-server -slaveof <masterip> <masterport>

image-20210801163032291

image-20210801163103641

  • 方式3:配置文件启动
slaveof <masterip> <masterport>

image-20210801163253378

重新启动6380服务器

image-20210801163341923

主从断开连接

//客户端发送
slaveof no one

image-20210801163619564

数据同步阶段

image-20210801165029428

image-20210801172204109

image-20210801172210707

命令传播阶段

命令传播:当master的数据库改变后,主从服务器的数据库不一致,此时需要同步到一致状态。

image-20210801174524108

心跳机制

命令传播阶段中,master和slave要进行信息交换,使用心跳机制来进行维护,实现双方连接保持在线

  • master心跳
    指令:ping。
    周期:默认10s。
    作用:判断slave是否在线。
  • slave心跳
    指令:replconf ack{offset}。
    周期:1s。
    作用:1、判断master是否在线。2、告诉master自己的复制偏移量,获取数据更新指令。

image-20210801175746524

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值