Redis学习笔记(四)Redis复制(Replica)

是什么?能干嘛?

就是主从复制,以master以写操作为主,slave以读操作为主,当master的数据发生改变的时候,自动将新的数据异步同步到其他slave数据库

这样就可以完成读写分离,数据备份,水平扩容支持高并发

操作步骤

配从库不配主库

基本命令操作:

info replication:查看节点的主从关系,配置信息

replicaof 主库ip 主库端口:一般写进redis.config中

----------------主从复制

slaveof 主库ip 主库端口:在运行期间修改slave节点的信息,如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据库的的同步关系转而和新的主数据库同步

----------------改换门庭

slaveof one:使当前数据库停止和其他数据库进行同步操作,转为主数据库

----------------自立为王

如何实现不同数据库的主从关系

配置文件固定写死   在从数据库的配置文件中写入replicaof 主库ip 主库端口

命令操作手动指定  在从数据库执行slaveof 主库ip 主库端口命令,需要注意的是这种设置主从关系是一次性的,也就是说如果从机关机后重启是没有之前的主从关系的

两者之间的区别?

配置:持久稳定

命令:当次生效

主从问题

1.从机可以进行写命令吗?

显然从机不能进行写操作

2.从机是从头开始复制还是从切入点开始复制?

首次一锅端,后续跟随,master写,slave跟

3.主机shutdown后从机会变成主机吗?

从机不动,原地待命,从机数据可以正常使用;等待主机重启动归来(这是复制的一大弊端)

4.主机shutdown后重启主从关系还在吗?从机能否顺利复制?

主从关系依旧还在

总结

复制原理和工作流程

slave启动,同步初请

slave启动成功连接到master后会发送一个sync命令,一次完全同步将会被执行,slave自身数据将会被master数据覆盖清除

初次连接,全量复制

master节点收到sync命令会在后台保存快照(即RDB持久化,主从复制会触发RDB),同时收集所有修改数据命令并保存缓存起来,master节点执行完持久化后,将rdb文件和缓存的命令集一并发送给slave,以完成一次同步

心跳持续,保持通信

repl-ping replica-period 10

进入平稳,增量复制

master会将新收集到的修改命令自动一次传给slave完成同步

从机下线,重连续传

master会检查backlog内的offset,master和slave都会保存一份offset和masterID,master只会把已经复制的offset后面的数据复制给slave,类似于断点续传

复制的缺点

1.由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

2.当master挂点时,slave节点只会等待主机重新启动,非常影响业务处理,所以需要无人值守运维

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值