博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Redis学习笔记】2018-06-08 主从复制实现
阅读量:6703 次
发布时间:2019-06-25

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

顺风车运营研发团队 黄桃

1、主从复制问题 方案讨论
方案一:

  • 主收到从服务的同步请求,则立马生成一个数据副本+缓冲区,再异步启动BGSAVE进程,读取数据副本并生成RDB文件,新收到的写命令则往缓冲区写入。待RDB文件同步到从服务器完成,再把缓冲区的命令重新执行一遍。

方案二:

  • 主收到从服务的同步请求,则只生成缓冲区,再异步启动BGSAVE进程,读取主数据并生成RDB文件,把修改数据的结果往缓冲区写入。待RDB文件同步到从服务器完成,再把缓冲区的数据重新更新一遍。

方案一的复杂性较低,方案二则内存利用率更高,REDIS采用的是方案一。

2、具体过程如下:

1、redis服务器,在收到命令:SLAVEOF 127.0.0.1:6379,后则把命令中的 127.0.0.1:6379 当自己的成主服务,并向其发送SYNC命令。

2、从服务器从生产到离线,等待主服务数据同步。

3、主服务收到SYNC后,则执行BGSAVE命令,异步启动BGSAVE进程,生成RDB文件,新收到的写命令则往缓冲区写入。

4、主服务生产完rdb文件,则把该文件发送到从服务,待同步到从服务器完成,再把缓冲区的命令重新执行一遍。

clipboard.png

3、部分主从复制方案实现

clipboard.png

4、源码实现:

待补充

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

你可能感兴趣的文章
js生成动态的飘过效果
查看>>
Java进阶05 多线程
查看>>
SQLSERVER性能监控级别步骤
查看>>
Java使用ScriptEngine(javax.script)
查看>>
Nhibernate中 Many-To-One 中lazy="proxy" 延迟不起作用的原因
查看>>
C# COM Object for Use In JavaScript / HTML, Including Event Handling
查看>>
svn权限设置
查看>>
MVC验证11-对复杂类型使用jQuery异步验证
查看>>
C++static关键字用法
查看>>
excel在msdn上的说明文档
查看>>
指尖下的js ——多触式web前端开发之一:对于Touch的处理(转)
查看>>
visual studio 2013使用技巧
查看>>
Sublime Text 相关
查看>>
深入理解css优先级
查看>>
Android MediaPlayer状态机
查看>>
Material Design Animation
查看>>
ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开
查看>>
(C语言)memcpy函数原型的实现
查看>>
Theano2.1.1-基础知识之准备工作
查看>>
FreeBSd ports 安装软件
查看>>