美文网首页
Redis复制浅析

Redis复制浅析

作者: 剑客kb | 来源:发表于2018-11-18 21:54 被阅读0次

SLAVEOF

  • SLAVEOF host port在当前Redis服务器执行可以让当前服务器成为服务器ip的从服务器,并且丢弃原有数据集,并开始对新主服务器进行同步(同步即将从服务器状态更新到和主服务器当前状态一致)。
  • SLAVEOF no one 可以让当前服务器保持原有数据,并停止对其他服务器的同步,成为主服务器

同步

  1. 首先从服务器向主服务器发送SYNC命令 ;
  2. 收到命令的主服务器执行BGSAVE命令,在后台生产RDB文件,同时起一个缓冲区记录从当前开始之后执行的写命令;
  3. 主服务器中RDB文件生产完毕时,发送给从服务器,从服务器进行数据载入,载入过程中,从服务器会因为阻塞无法响应命令请求;
  4. 主服务器把缓冲区中的写命令发送给从从服务器,从而使得主从数据保持一致。

PSYNC命令

该命令具有全量同步和部分同步功能。全量同步表示从服务器初次同步和SYNC命令步骤一致;断线后重连同步可以只同步主服务器在短线这段时间内执行的写操作;

部分重同步

包含三部分:主从服务器的复制偏移量、复制加压缓冲区、服务器运行ID

-- 复制偏移量:主从服务器都会维持一个复制偏移量,用来主服务器向从服务器传播的字节数。
-- 复制积压缓冲区:一个FIFO的队列,队列大小可以设置,默认1MB
-- 服务器运行ID:每个Redis服务器都有一个运行ID,由40个随机的十六进制字符组成。从服务器向主服务器进行初次复制时,会记录主服务器的运行ID。

当从服务器断线重连时,可以通过复制偏移量对比出从服务器在断线时丢失的命令,通过复制加压缓冲区中的数据(假设丢失数据size大于缓冲区大小,则必须进行全量同步)来进行恢复,从服务器重连上一个主服务器时,会把之前保存的服务器运行ID发送给它,假设运行ID一致,则可以进行重连,否则全量同步。

心跳检测

命令传播过程中,从服务器默认每1秒向主服务器发送命令REPLCONF ACK<replication_offset>来检测网络连接状态、命令是否丢失、辅助实现min-slaves选项(min-slaves-towrite[最少需要的从服务器数量]和min-slaves-max-lag(从服务器延迟值)可以防止主服务器在不安全的状态下执行写命令)

相关文章

  • Redis复制浅析

    SLAVEOF SLAVEOF host port在当前Redis服务器执行可以让当前服务器成为服务器ip的从服务...

  • Redis主从复制

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

  • redis主从复制和sentinel

    redis 主从复制 一. 复制 Redis 的复制(replication)功能允许用户根据一个 Redis服务...

  • redis-cluster 集群搭建方案

    下载redis 源码包,编译安装redis 修改redis 参数 复制几个不同的redis 服务节点 修改复制的服...

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

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

  • 浅析 Redis 主从复制实现原理

    本篇主要分三部分讨论Redis主从复制的实现原理:主从复制过程、状态机、源码解析。Redis从节点使用了状态机机制...

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

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

  • Redis的复制(Master | Slave)

    Redis的复制(Master | Slave) 1.Redis复制简介 行话:也就是我们所说的主从复制,主机数据...

  • Redis复制

    1、redis复制是什么? redis复制,也就是我们所说的主从复制(master/slaver机制)。根据配置和...

  • k3s operator 方式 安装 redis 无中心集群

    redis有单机,复制,分片这几种方式 复制就是把一个redis的数据,复制到另外一个redis, 分片就是把ke...

网友评论

      本文标题:Redis复制浅析

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