博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis复制
阅读量:4170 次
发布时间:2019-05-26

本文共 606 字,大约阅读时间需要 2 分钟。

Redis复制

Redis中,用户通过SLAVEOF命令可复制服务器,被复制的服务器为master。

复制的服务器双方数据一致。

旧Redis的实现

旧版本的Redis复制实现分为同步和命令传播。

同步用于把从服务器数据状态更新为主服务器所处的

同步

1.从服务器发送sync命令到master

2.master执行BGSAVE生成RDB文件,并用缓冲区记录现在正在写的写命令。
3.BGSAVE执行完后,master将RDB文件发送到从服务器,从服务器接收并载入RDB文件,更新状态。
4.master将记录在缓冲去里的写命令发给从服务器并执行,更新状态。

命令传播

同步执行完后,不一定达到一致。因为可能在发送写命令时,master数据库即被改变。

因此,master会将导致主从不一致状态的写命令发送到从服务器。

新版Redis复制的实现

新版redis使用psync代替sync执行同步,psync包含完整重同步和部分重同步。

完整重同步

跟sync执行步骤一样,让master创建并发送RDB文件,并向从服务器发送保存在缓冲区里面的写命令同步。

部分重同步

部分重同步用于处理短线后重复制的情况,当从服务器短线后重连时,master将链接断开期间执行的写命令发给从服务器执行,即可将数据库状态更新至主服务器的状态。

复制实现

发送命令 SLAVEOF <master_ip> <master_port>

转载地址:http://fukai.baihongyu.com/

你可能感兴趣的文章
FTP上传下载类
查看>>
hdu 5119 Happy Matt Friends
查看>>
寒假5
查看>>
C51汇编典型代码&一些org-mode技巧
查看>>
Expert_PL_SQL_Practices-----Do Not Use
查看>>
CSS 清除浮动的4种方法
查看>>
Zabbix告警脚本-邮件
查看>>
基于linux c的mysql操作——幼儿园数据管理系统
查看>>
ACM数学
查看>>
不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在中国不会出现比尔盖茨及乔布斯...
查看>>
C语言拾遗(一)
查看>>
发发关于JavaScript的感慨,随手记几个js知识碎片
查看>>
奔小康赚大钱
查看>>
SQL Server 2008故障转移集群+数据库镜像配置实例之二
查看>>
编译Linux
查看>>
Java 归并排序
查看>>
2015-09-28 Javascript
查看>>
react+webpack+babel+eslint+redux+react-router+sass 环境快速搭建
查看>>
BZOJ3569 DZY Loves Chinese II(随机化+树上差分+线性基)
查看>>
夜间模式的切换
查看>>