说说Redis主从同步数据的流程吧

Redis系列(三):深入解读Redis主从同步机制 (qq.com)

图解Redis数据同步(全量 + 增量)_redis 增量同步_学徒630的博客-CSDN博客

主从同步分为两个阶段:全量同步和增量同步

一、建立连接,协商同步

从节点首先向主节点发送 PSYNC命令表示自己要建立连接,主机节点收到后,主库收到 PSYNC 命令后,响应FULLRESYNC命令,并带上主库runID和主库目前的复制进度offset

二、全量同步

这时候主库会执行bgsave命令,生成RDB文件发送给从库,从库收到后清空当前数据库加载RDB文件。此时主库新来的写操作会记录到replication buffer

三、增量同步

主库完成RDB发送后,会将replication buffer中新的修改操作发送给从库。

追问:master节点怎么知道slave节点是新客呢

PSYNC 命令里附带了偏移量(offset)和 replication id

首先看slave节点的offset值,为空就直接做全量同步

不为空就看一下Replication Id是不是一致,一致就同步offset之后的数据

追问:那增量同步用的是AOF文件吗?

通常情况下,主节点会将所有的写操作持久化保存在AOF日志文件中,但是在全量同步时,为了减少网络传输的压力,主节点将新的写操作暂时保存在Replication Buffer中

追问:一主多从的架构的问题

主节点要生成多份RDB并传输给从节点 {

  1. 通过fork子进程生成RDB快照会阻塞主线程处理请求
  2. 传输RDB文件会占用网络带宽}

怎么解决呢?

部署主从集群时,选择主-从-从 架构,选择硬件网络配置比较好的一个从库,让它跟部分从库再建立主从 关系。

重生之八股仙帝 文章被收录于专栏

曾有一千古奇人,精修八股文,成遁世之高人,彻天彻地畅游天地间。 今人皆忙忙,急于求成,岂不知八股乃道门口径,背负天人,若经熟读背诵,更能开拓智慧之门,探寻未来之路。 天下繁华,不尽长夜,唯有读书为伴,熟读八股文更是攀登高峰之路。磨砺文字,升腾智慧,唯有勤玉立志,始可破天荒,登临九重不竭之巅! 吾辈修炼之路,虽曲折荆棘,但信念不曾磨灭,唯有铭记八股精髓,方能指引灵魂归宿,成就一生辉煌!

全部评论

相关推荐

评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务