谈谈redis的主从复制

用途:
redis的主从复制主要用于做主备,主机可以用作只做写功能,丛机可以用作只做读功能(类似mysql的主从复制一样)。

实现原理:
每一个master都记录一个relication ID ,这是一个伪随机数字符串,同时也记录一个偏移量 offset。master会将自己更新的数据发送给slave,更新多少就发送多少,同时偏移量也会增大。
所以,基本给定一对 relication ID,offset 都会得到唯一的一份数据集。所以slave都拿旧的relication ID和offset去master中获取。通过这样得到最新的数据(这里用master中的offset减去slave中的offset就能够得到对应的slave跟master中没有同步到的数据),然后拿到最新的数据补充到自己原有的数据当中。这个slave去获取的命令就做PSYNC命令。
另外,当slave启动时候 ,只会进行一次全量复制。

实现步骤:
1.slave启动,通过psync命令发送去请求master机获取数据(slave重启会进行一次全量复制)。
2.master机子后台会 启动进程,接收准备所有用户修改的数据,也就是快照rdb。
3.全量复制:master将所有数据都传送给slave。
4. 增量复制:master只将需要修改的数据传送给slave(这是正常情况下,slave没有宕机),增量复制会采用aof形式,发送aof文件给slave。当我们在 master 服务器增减数据的时候,就会触发 replicationFeedSalves()函数,这个函数就会触发更新数据到slave

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值