美文网首页
redis主从复制

redis主从复制

作者: 绝色天龙 | 来源:发表于2019-05-24 00:38 被阅读0次

复制

旧版复制功能(2.8版本以前)

  • 同步
  • 命令传播

旧版复制功能的缺陷

  • 初次复制

从服务器从未进行过复制,或者当前要复制的主服务器和上一次复制的主服务器不同

  • 断线后重复制

处于命令传播阶段的主从服务器因为网络中断了复制,从服务器自动重连成功继续复制

旧版复制在断线重连后会重新执行一次同步操作,主服务器会将完整的RDB文件发送给从服务器

新版复制功能的实现

部分重同步实现

  • 复制偏移量(主从服务器都有)

复制偏移量可以用来判断主从服务器状态是否一致

  • 复制积压缓冲区(主服务器有)

由主服务器维护的一个固定长度的FIFO队列,默认大小为1MB

从服务器重新连上主服务器后会通过PSYNC发送自己的offset,主服务器会进行判断:

  1. offset后的数据还在积压缓冲区,则执行部分重同步
  2. offset后的数据不在积压缓冲区,则执行完整同步

复制积压缓冲区的设置:repl-backlog-size

  • 服务器运行ID(run ID)
  1. 每个服务器都有,服务启动自动生成,40位随机的16进制字符
  2. 初次复制,主服务发送本机run ID 给从服务器,从服务器保存
  3. 断线重连参考下图

PSYNC命令实现

复制的实现

  1. 从服务器设置主服务器的地址和端口
  • SLAVEOF是异步命令,设置完地址和端口后从服务器返回客户端OK,之后进行同步
  1. 从服务器与主服务器建立套接字连接
  • 从服务器可以视为主服务器的一个客户端
  1. 从服务器发送PING命令
  • 收到PONG,一切正常
  • 读取恢复超时或者主服务器返回错误,断开重连主服务器
  1. 身份验证
  • 根据masterauth配置决定是否进行身份验证


    image
  1. 发送端口信息
  2. 同步
  • 主从服务器互为客户端
  1. 命令传播

心跳检测

  • 默认每个一秒发送心跳
  1. 检测网络连接状态
  2. 辅助实现min-slaves配置选项
  3. 检测命令丢失(心跳会携带复制偏移量)

相关文章

  • Redis|主从复制与哨兵机制

    1. Redis主从复制 1.1 Redis主从复制 Redis主从复制主要有两个角色,主机(master)对外提...

  • 【Redis学习笔记】13 Redis 主从复制

    1. Redis 主从复制特性 2. Redis 主从复制流程 3. Redis 主从复制操作 IP地址端口角色1...

  • Redis主从复制

    Redis主从复制 一.主从复制介绍 1.Redis复制功能介绍 1)Redis 使用异步复制。从 Redis2....

  • Redis的高可用

    Redis主从复制 什么是主从复制 Redis有三种集群方案,主从复制,哨兵,cluster集群,主从复制是指将一...

  • redis(二)

    Redis用户认证 禁用危险命令 主从复制的过程 主从复制的部署 哨兵 Redis哨兵+主从+密码 Redis哨兵...

  • Redis Sentinel 介绍与部署

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • 高可用的redis服务搭建

    Redis Sentinel 介绍与部署 1. Sentinel介绍 1.1 主从复制的问题 Redis主从复制可...

  • redis主从设置

    redis主从复制 Redis读取写入的速度都特别快,但是也会产生读压力特别大的场景。 Redis支持主从复制,主...

  • redis的三种集群方式

    redis的三种集群方式 redis有三种集群方式:主从复制,哨兵模式和集群。 1.主从复制 主从复制原理: 从服...

  • Redis哨兵集群

    redis-sentinel主从复制高可用 Redis-Sentinel Redis-Sentinel是redis...

网友评论

      本文标题:redis主从复制

      本文链接:https://www.haomeiwen.com/subject/xpfwzqtx.html