redis主从复制原理, 断点续传, 无磁盘化复制, 过期key的处理

byteflyer
• 阅读 2378
  1. 主从架构的核心原理

    当启动一个slave node的时候, 他会发送一个PSYNC命令给master node, 如果这时重新连接master node, 那么master node仅仅会复制给slave部分缺少的数据; 否则如果是salve node, 那么会触发一次full resynchronization开始进行全量的复制, 此时的master会在后台启动一个进程, 生成一份rdb文件, 同时还会降从客户端收到的命令缓存在内存中, rdb文件生成完毕之后, master会将这个rdb发送给slave, slave会先写入本地磁盘, 然后再从本地磁盘加载到内存, 然后master会将内存中缓存的写命令发送给slave, slave也会同步这些数据.
  2. 主从复制的断点续传

    从redis 2.8开始, 就支持主从复制的断点续传, 如果主从复制过程中, 网络连接断掉了, 那么可以接着场次复制的地方, 继续复制下去, 而不是从头开始复制一份master node会在内存中创建一个backlog, master和slave都会保存一个replica offset还有一个master id, offset就是保存在, offset就是保存在backlog中的, 如果master和lave网络连接断掉了, slave会让master从上次的replica offset开始继续复制但是如果没有找到对应的offset, 那么就会执行一次resynchronization.
  3. 无磁盘化复制

    master在内存中直接创建rdb, 然后发送给slave, 不会在自己本地的磁盘中存储
    repi-diskless-sync
    repi-diskless-sync-delay 等待一定市场再开始复制, 因为要等更多slave重新连接过来
  4. 过期key处理

    slave不会过期key, 只会等待master过期key, 如果master过期了一个key, 或者通过LRU淘汰了一个key, 那么会模拟一条del命令发送给slave
点赞
收藏
评论区
推荐文章
Peter20 Peter20
4年前
redis的三种集群方式
redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;从服务器收到
Stella981 Stella981
4年前
Redis主从自动切换原理
Redis主从自动切换原理复制原理1:当一个从数据库启动时,会向主数据库发送sync命令,2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。4:从数据库
Wesley13 Wesley13
4年前
MySQL 主从复制(实时热备)原理与配置
MySQL是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失。为了保证MySQL数据库的可靠性,就要会一些提高可靠性的技术。MySQL主从复制可以做到实时热备数据。本文介绍MySQL主从复制原理及其配置过程。术语:主从复制——masterslavereplication(MS模式)。用途备份读写分离高
Stella981 Stella981
4年前
Redis高并发7
1、主从架构的核心原理当启动一个slavenode的时候,它会发送一个PSYNC命令给masternode如果这是slavenode重新连接masternode,那么masternode仅仅会复制给slave部分缺少的数据;否则如果是slavenode第一次连接masternode,那么会触发一次fullre
Stella981 Stella981
4年前
Redis系列
Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方式是无法接受的。可喜的是Redis从2.8开始正式提供了RedisSentinel(哨兵)架构来解决这个问题。总结:Redis主从复制的缺点:没有办法对master进行动态
Wesley13 Wesley13
4年前
mysql主从同步问题梳理
前言:MySQL主从复制故障机延迟原因有很多,之前详细介绍了Mysql主从复制的原理和部署过程,在mysql同步过程中会出现很多问题,导致数据同步异常。以下梳理了几种主从同步中可能存在的问题:1)slave运行过慢不能与master同步,也就是MySQL数据库主从同步延迟MySQL数据库slave服务器延迟的现象是非常普遍的,MySQ
Stella981 Stella981
4年前
Redis(1.7)Redis高可用架构(理论篇)
【0】常用架构种类  (0.1)单机Redis  (0.2)单纯的Redis主从复制  (0.3)哨兵SentinelRedis主从复制集群(实现高可用自动故障转移)  (0.4)RedisCluster分布式数据库集群  (0.5)第三方中间件Redis主从复制【1】Redis主从复制
Stella981 Stella981
4年前
Redis学习
主从复制官方文档:https://redis.io/topics/replicationRedis中的主从复制,也就是MasterSlave模型,有以下特点  Master可以拥有多个slave  多个slave不仅可以连接同一个master,还可以连接到其他的slave  主从复制不会阻塞master,在同步数据时,maste
Wesley13 Wesley13
4年前
MYSQL数据库之主从复制及读写分离
MYSQL数据库之主从复制及读写分离一、MySQL的主从复制1、概述  MySQLReplication俗称MySQLAB复制或主从复制,是MySQL官方推荐的数据同步技术。数据同步基本过程:从库会实时去读取主库的二进制日志文件,按照日志中记录对从座进行同样的操作,以达到数据同步效果。2、MySQLReplication优点
Wesley13 Wesley13
4年前
mysql主从复制原理及实现
一.主从复制原理利用MySQL提供的Replication,其实就是Slave从Master获取Binarylog文件,然后再本地镜像的执行日志中记录的操作。由于主从复制的过程是异步的,因此Slave和Master之间的数据有可能存在延迟的现象,此时只能保证数据最终的一致性。在master与slave之间实现整个复制过程主要由三个线程来完成
胖大海 胖大海
3年前
Redis 原理
架构原理Redis组件的系统架构如图所示,主要包括事件处理、数据存储及管理、用于系统扩展的主从复制/集群管理,以及为插件化功能扩展的ModuleSystem模块。!(https://imgblog.csdnimg.cn/i