redis的主从复制机制
来源:互联网 发布:常熟天下淘宝 编辑:程序博客网 时间:2024/06/05 15:56
redis的主从复制机制方法----基础知识:
1.主redis中的数据有从redis副本,
2.主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到从redis服务上
3.只有一个主redis,可以有多个从redis
4,.主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
5.一个redis可以既是主,又是从
接着对主从复制的机制进行详细分析,首先,redis主从复制根据是否是全量分为全量同步和增量同步
全量同步
1.slave服务器连接到master服务器,发送SYNC命令
slave服务器通过 syncWithMaster() 函数来连接 Master 服务器(如果Master服务器需要密码登录的话,先登录),并且发送SYNC命令请求同步,接着打开 rdb 文件(用于存储由Master发送过来的数据),创建读rdb 的 IO 事件(readSyncBulkPayload)
2.master服务器备份数据库到 .rdb 文件
当slave服务器发送SYNC命令到master服务器时,master 服务器变回调用 syncCommand() 函数来进行同步,同步的第一步便是把数据库的数据存储为 rdb 文件,存储完毕后调用updateSalvesWaitingBgsave()函数来发送 rdb 文件给所有的slave 服务器,updateSlavesWaitingBgsave() 要做的事情是, 打开 rdb 文件, 创建发送 rdb 文件 IO 事件(sendBulkToSlave). 而sendBulkToSlave()主要的工作就是把rdb文件发送给 Slave 服务器。而当 Slave 服务器接收 rdb 文件完毕之后(readSyncBulkPayload()函数处理), 会清空原来数据库的数据,然后把 rdb 文件的数据导入到数据库中
3.全量同步完成
完成上面的步骤,全量同步基本完成。接下来就是增量同步。
增量同步
增量同步就是当 master 服务器有数据更新的时候,会立刻同步到所有的 slave 服务器
1.当我们在 master 服务器增减数据的时候,就会触发 replicationFeedSalves()函数,接下来在 Master 服务器上调用的每一个命令都会使用replicationFeedSlaves() 函数来同步到Slave服务器。当然,在执行此函数之前master 服务器会判断用户执行的命令是否有数据更新,如果有数据更新并且slave 服务器不为空,才会执行此函数,而此函数主要的工作就是把用户执行的命令发送到所有的 slave服务器,让 slave 服务器执行,这样就可以实施同步功能了。
阅读全文
0 0
- redis的主从复制机制
- redis的主从复制机制
- Redis主从复制机制
- Redis主从复制机制分析
- Redis的主从复制
- Redis的主从复制
- redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- Redis的主从复制
- redis的主从复制
- Redis的主从复制
- Redis的Replication(主从复制)和sentinel机制
- 解密Redis的持久化和主从复制机制
- Redis的主从机制
- 3,redis主从复制跟哨兵机制
- HTML5 canvas时钟钟表!
- breed Web刷机升级详细教材修正编译器固件说明_itkeji.top
- linux shell编程时报:bad substitution错误的解决办法
- 6174的问题
- 从Java的equals和==初识面向对象
- redis的主从复制机制
- Spring3.1.0实现原理分析(十五).MVC验证器模块
- JS中的事件委托
- iOS内购的小白
- NC常用命令
- 排序——若干排序算法
- Java并发编程:volatile关键字解析
- 又一年对Android消息机制(Handler&Looper)的思考
- The import com.XXX.xxx cannot be resolved