主从同步模式(replication)

主从同步是指以一个节点为基准节点,将数据同步给从节点,使得主从节点的数据保持一致,主节点一般也称为Master,从节点Slave,一个Master节点可以有多个Slave节点。这种架构叫 一主多从 的主从架构。如果每一个Slave节点也作为基准节点,同时也拥有多个Slave节点,这种架构叫 级联结构 的主从架构

主从同步集群模式的应用场景

1. Slave作为Master的数据备份

可以大大加强Redis服务的健壮性。当主服务器出现故障时,可以人工或自动的切换到从服务器继续提供服务,同时当主服务器的数据因为某些原因不能恢复时,可以使用从服务器备份的数据。还经常使用从服务器来处理一些操作比较耗时的命令,以防止阻塞主服务器的工作。

2.数据读写分离

一般为主服务器提供写操作,从服务器提供读操作。主服务器的写操作会同步给从服务器。数据读写分离将读操作和写操作隔离开,使得读写相互不影响效率,提高了服务的读写速度

3.多个从服务器根据业务拆分

当读多写少的情况下,可以根据读的不同业务将多个从服务器拆分。此种场景不仅减轻了主服务器的压力,同时也使得不同的业务数据访问互不影响

Redis主从同步原理

全量同步

全量同步一般发生在Slave的初始化阶段,就是Slave的启动阶段

  • 从服务器连接主服务器
  • 从服务器发送 SYNC 命令到主服务器
  • 主服务接受到 SYNC 命令后,开始执行 BGSAVE 命令生成 RDB 文件并使用缓冲区记录此后的执行的所有写命令
  • 主服务器 BGSAVE 执行完后,递增地将文件发送到从服务器,并在发送期间继续记录被执行的写命令
  • 从服务器接受到快照文件后丢弃所有旧数据,载入收到的快照
  • 从服务器将快照载入内存
  • 主服务器快照发送完毕后开始向从服务器发送缓冲区写命令
  • 从服务完成对快照的载入,开始接收主服务器发送的写命令请求,并执行写命令
  • 一次全量同步完成

增量同步

增量同步是指Redis在主从模式已经正常工作的情况下,主服务器将写操作同步到从服务器的过程

增量复制的原理 当主服务器每执行一个写命令,就会将该命令发送给所有的从服务器,从服务器接受到命令后立即执行

  1. 主节点执行 BGSAVE 生成全量镜像的 RDB 文件,是如何工作的?

    BGSAVE 命令是用来在后台异步宝座当前数据库的数据到磁盘,不会阻塞主节点的进程,当执行 BGSAVE 后,会立即返回OK, 然后 Redis fork出一个新的子进程 来专门成成全量镜像文件,将数据保存到磁盘后,子进程推出

  2. 主节点 BGSAVE 的过程中,又有新的写请求到来,主节点怎么工作?这些写数据怎么保存?

    根据1的细节,可以知道主节点会有一个新的子进程来单独处理全量镜像的生成工作,那么主节点父进程可以继续来接收新的请求, 当fork的时候,操作系统会采用 写时复制(copy-on-write)策略;即fork发生一刻,父子进程共享同一块内存数据,当父进程接收到写操作时,操作系统会复制一份数据以保证子进程的数据不受影响。所以新产生的RDB文件存储的是fork那一刻的数据

  3. 主服务执行 BGSAVE 命令如果磁盘不够生成 rdb 文件数据的大小,不能同步吗?

    可以采用 无磁盘复制 技术,通常来讲,一个完全重同步需要在磁盘上创建一个RDB文件,然后加载这个文件以便为从服务器发送数据,如果使用比较低速或者容量较小的磁盘,这种操作会给主服务带来较大的压力

    2.8.18开始支持无磁盘复制。使用这种设置时,子进程直接将RDB文件通过网络发送给从服务器,不使用磁盘作为中间存储

    使用磁盘备份传送是多个从节点排队等待传送,即传送时串行的;而 无磁盘复制 技术是主节点在传送之前会等待一段时间(可配置,以秒为单位),等待多个从节点都到达后,并行发送

    # 配置取消硬盘备份
    repl-diskless-sync no
    # 延迟时间以秒为单位,默认为5秒。如果设置为 0 秒,传送会立即启动,不会延迟
    repl-diskless-sync-delay 5
    
  4. 主从同步过程中,从服务器是阻塞的吗?

    主从同步过程中,不会阻塞从服务器。当从服务器进程初始同步时,会使用旧的数据继续提供查询服务。并不是整个过程都是不阻塞的,当从服务器接收到快照文件,需要删除旧的快照并加载新的数据集到内存,这个短暂的时间内会阻塞连接进来的请求

  5. 当主从节点断开复制,从节点数据会删除吗?

    如需断开复制,从节点执行命令

    slaveof no one
    

    从节点不会删除已有的数据,只是不再接收主节点的数据变化

Redis 主从同步的优缺点

优点

  • 同一个 Master 可以部署多个 Slave
  • Slave 还可以接受其他的 Slave 的连接和同步,即所谓的 级联结构。有效的减轻 Master 的压力
  • 主从同步期间,主从节点均是非阻塞。不影响服务的查询和写入
  • 可以很好的实现读写分离的架构,系统的伸缩性得到提高

缺点

  • 主机的宕机会非常严重,导致整个数据不一致的问题。
  • 全量的复制的过程中,必须保证主节点必须有足够的内存。若快照的文件过大,还会对集群的服务能力产生影响。

Redis主从同步模式(replication)相关推荐

  1. redis主从读写分离replication复制数据+sentienl哨兵集群主备切换

    说明:最近公司在自己搭建了一套redis主从读写分离+sentinel哨兵集群主备切换,通过手工去搭建replication复制+主从架构+读写分离+哨兵集群+高可用redis集群架构 公司的已经搭建 ...

  2. 五、Redis主从同步

    Redis 主从同步 一.复制 二.旧版复制功能的实现 2.1.同步操作 2.2.命令传播操作 三.旧版复制功能的缺陷 四.新版复制功能的实现 五.部分重同步的实现 5.1.复制偏移量 5.2.复制积 ...

  3. 浅析 Redis 主从同步与故障转移原理

    我们在生产中使用 Redis,如果只部署一个 Redis 实例,当该实例宕机,到恢复之前都不可用:虽说 Redis 一般都用来做缓存,但不可用给业务系统带来的影响也是不小的,流量大时甚至会导致整个服务 ...

  4. Docker搭建Redis主从同步详细教程

    文章目录 介绍: redis主从同步概念 redis主从同步原理 redis主从同步流程图 搭建redis主从详细步骤: 拉取redis镜像 创建所需文件夹,用于映射容器相应文件路径 运行容器指定挂载 ...

  5. Redis主从同步(详解+图)

    目录 redis主从同步 全量同步 master如何判断一个slave是否是第一次同步? 全量同步过程 增量同步 增量同步过程 repl_baklog原理 可以从以下几个方面来优化Redis主从就集群 ...

  6. 32 | Redis主从同步与故障切换,有哪些坑?

    文章目录 Redis核心技术与实战 实践篇 32 | Redis主从同步与故障切换,有哪些坑? 主从数据不一致 读取过期数据 不合理配置项导致的服务挂掉 Redis核心技术与实战 实践篇 32 | R ...

  7. Day758.Redis主从同步与故障切换的坑 -Redis 核心技术与实战

    Redis主从同步与故障切换的坑 Redis 的主从同步机制不仅可以让从库服务更多的读请求,分担主库的压力,而且还能在主库发生故障时,进行主从库切换,提供高可靠服务. 接下来是对应会出现的3个坑,分别 ...

  8. MySQL 主从同步模式

    目录 MySQL 主从同步模式 主从同步结构 结构类型 配置一主多从结构 拓扑结构 配置从服务器 测试一主多从的配置 配置主从从结构 拓扑结构 配置主服务器 配置从服务器 测试配置 配置主主结构 拓扑 ...

  9. 【Redis】Redis主从同步中数据同步原理

    [Redis]Redis主从同步中数据同步原理 文章目录 [Redis]Redis主从同步中数据同步原理 1. 全量同步 1.1 判断是否第一次数据同步 2. 增量同步 3. 优化Redis主从集群 ...

最新文章

  1. log_archive_dest_1设置报错
  2. FTP登录时指定用户名密码的方法
  3. HTTP中request请求参数的设置
  4. pythonalert弹窗_python+selenium八:Alert弹窗
  5. 《OPhone应用开发权威指南》全面上市
  6. [C++11]lambda表达式语法
  7. 大学毕业后5年决定命运(强烈推荐一看)
  8. 【Spring Cloud】网关-gateway(2.x)
  9. [Python] pdb 调试
  10. 计算机毕业设计中用Java实现在线考试系统
  11. 关于百度地图海量打点的问题
  12. 关于AD导Gerber文件的理解和总结
  13. 新版万能声卡驱动-VoodooHDA-2.8.5
  14. c语言结构体数组怎么初始化,c语言结构体数组初始化
  15. 链路捆绑(名词注解)
  16. bouncycastle android,Android和BouncyCastle的IllegalAccessError
  17. iPad能装Android系统,我错了,原来iPad真的能装Windows和MacOS系统
  18. JAVA+Selenium+Chrome+Chromedriver 模拟浏览器
  19. 腾讯云人脸核身和人脸识别是什么
  20. node打包单体文件部署服务器

热门文章

  1. 【issue】让屏幕保持不暗
  2. 计算机中级职称证书作用,获得中级职称证书后的作用,了解一下!
  3. PPT自动保存%撤销次数%快捷键
  4. 苹果手机怎么查看足迹_苹果手机怎么查看被拦截的电话-苹果手机查看被拦截电话的方法...
  5. RedissonDistributedLock(redis分布式锁工具类,笔记)
  6. 光亮剂与增亮剂_油漆亮光剂的增亮原理
  7. 一周企业财报 | 阿迪达斯、西门子医疗、宏利香港、跟谁学等7家企业发布业绩...
  8. 【一本通提高树链剖分】「ZJOI2008」树的统计
  9. 2018春节返程大数据让您出行更方便!
  10. xlsx表格怎么做汇总统计_怎样在Excel电子表格中对数据进行分类汇总 实例教程...