redis复制replica

发布时间 2023-12-02 17:19:16作者: 天启A

通过查看log信息即可观察主机是否与从机正确连接,一般来说主机上有succeeded就是可以了

可以通过info replication查看自己的身份

role:master
connected_slaves:2
slave0:ip=192.168.88.102,port=6380,state=online,offset=630,lag=1
slave1:ip=192.168.88.103,port=6381,state=online,offset=630,lag=1

# Replication
role:slave
master_host:node1
master_port:6379

配置文件配置主从关系:在conf文件中修改大概533行 replicaof <masterip> <masterport>

手动配置主从关系:slaveof 主库IP 主库端口    但是重启以后就又变回主机了

          slaveof on one 脱离主库,自己成为master,会保存数据

关于主从复制:

 从机只可以读取,不可以写操作

从机即使突然shutdown了,再次启用之后还是可以读取在他不在的期间的数据

主机突然shutdown了,从机不会上位成为主机,但是仍然可以正常使用数据

主机恢复之后关系还在,数据也正常读取

slave可以作为其他slave的master接收连接和同步请求,这样的好处是可以减轻主master的压力。但是只要是slave就不可以进行写操作

复制的工作流程

1.slave第一次连上master会发送一个sync命令,一次完全同步会被自动执行,此时slave原有数据会被master覆盖

2.master收到sync命令之后进行rdb持久化,持久化完成之后master会将rdb文件与所有缓存命令收集起来发给slave,slave会将其存盘并加载在内存

3.主库会默认每十秒发送ping保持通信

4.master会将新的所收集的指令集自动发给slave,完成同步

5.master会检查backlog里的offset,主从都会保存一个offset还有一个masterId。master只会把已复制的offset后面的数据复制给slave,类似断点续传

主从复制的缺点:

写操作都是在master上,同步更新在slave上会有发生延迟,越繁忙复杂延迟越严重

主机挂了就写不进去东西了