本片章节主要从 redis 主从复制延迟相关知识及影响因素做简要论述。

1、配置:repl-disable-tcp-nodelay

也即是TCP 的 TCP_NODELAY 属性,决定数据的发送时机。

配置关闭:主节点产生的数据无论大小都会及时的发送给从节点。redis默认关闭此配置,以保障较小的主从延迟。当然,这需要主从间保持较好的网络状况。

配置打开:主节点会合并较小的TCP数据包以节省宽带,默认发送时间间隔由linux内核设置决定,默认一般40ms。虽然这样大大增加了主从之间的延迟,但是对于网络状况达不到条件或者对主从延迟不敏感的情况比较适用。

在实际应用中,我们可能也会遇到需要异地机房部署主从的情景,因此需要充分考虑对数据更新及时性及数据本身变动特性来决定具体的架构模式。

2、复制偏移量:master_repl_offset | slave_repl_offset

参与复制角色自身维护的复制偏移量。

主节点每次处理完写操作,会把命令的字节长度累加到master_repl_offset中。

从节点在接收到主节点发送的命令后,会累加记录子什么偏移量信息slave_repl_offset,同时,也会每秒钟上报自身的复制偏移量到主节点,以供主节点记录存储。

在实际应用中,可以通过对比主从复制偏移量信息来监控主从复制健康状况。

3、复制积压缓冲:repl_backlog_*

关于redis内存分析,内存优化 介绍过复制积压缓冲内存占用,主节点保持的一个固定长度队列,默认大小1M,当主节点有从节点连接时,主节点在把写操作发送给从节点的同时,也会写入一份到复制积压缓冲区。

复制积压缓冲队列,先进先出,主要用于增量复制及丢失命令补救等。

repl_backlog_active:0 | 1  关闭 | 开启复制积压缓冲区标志

repl_backlog_size:缓冲区最大长度

repl_backlog_first_byte_offset:缓冲区起始偏移量

repl_backlog_hislen:已存储的数据长度。

可用偏移量范围:[repl_backlog_first_byte_offset, repl_backlog_first_byte_offset + repl_backlog_hislen]

4、redis 实例运行id:run_id:

用以网络中唯一标识区别redis运行实例。

需要注意的是redis重启之后run_id会随之改变,如下:

通常我们需要同一个redis实例保持唯一不变的运行ID,以保障主从复制数据安全性。

在需要重新加载配置时通常可以通过执行 debug reload 命令操作:

需要注意的是,debug reload 是阻塞操作,执行时首先生成本地RDB快照,然后清空数据再加载RDB数据。

5、主从复制:sync | psync

run_id就是上面我们所说的run_id,offset则是复制偏移量。

psync是v2.8版本之后的命令。

FULLRESYNC:全量复制

CONTINUE:部分复制

ERR:从节点版本限制无法识别psync命令。

全量复制:

部分复制:

6、主从心跳

主从之间维持长连接发送信条信息。

主节点每隔10s发送ping命令检测从节点存活。配置:repl-ping-slave-period

从节点每隔1s发送 repconfig 命令,上报复制偏移量。

关于repconfig:

实时检测主从节点网络状况。

上报复制偏移量,检查数据复制状况。

维护从节点数据量(min-slaves-to-write)及延迟性功能(min-slaves-max-lag)。

redis主从复制、主从延迟知几何的更多相关文章

  1. redis+Keepalived实现Redis主从复制

    redis+Keepalived实现Redis主从复制: 环境:CentOs6.5Master: 10.10.10.203Slave:   10.10.10.204Virtural IP Addres ...

  2. 深入剖析 redis 主从复制

    主从概述 redis 支持 master-slave(主从)模式,redis server 可以设置为另一个 redis server 的主机(从机),从机定期从主机拿数据.特殊的,一个 从机同样可以 ...

  3. 谈谈redis主从复制的重点

    Redis主从复制的配置十分简单,它可以使从服务器是主服务器的完全拷贝.下面是关于Redis主从复制的几点重要内容: Redis使用异步复制.但从Redis 2.8开始,从服务器会周期性的应答从复制流 ...

  4. [转载] 深入剖析 redis 主从复制

    转载自http://www.cnblogs.com/daoluanxiaozi/p/3724299.html 主从概述 redis 支持 master-slave(主从)模式,redis server ...

  5. 项目实战11—企业级nosql数据库应用与实战-redis的主从和集群

    企业级nosql数据库应用与实战-redis 环境背景:随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红包 ...

  6. 高可用Redis(八):Redis主从复制

    1.Redis复制的原理和优化 1.1 Redis单机的问题 1.1.1 机器故障 在一台服务器上部署一个Redis节点,如果机器发生主板损坏,硬盘损坏等问题,不能在短时间修复完成,就不能处理Redi ...

  7. 第五章· Redis主从复制介绍

    一.Redis主从复制 二.Redis主从复制工作机制 一.Redis主从复制 Redis复制功能简单介绍 1)使用异步复制.2)一个主服务器可以有多个从服务器.3)从服务器也可以有自己的从服务器.4 ...

  8. Redis系列八:redis主从复制和哨兵

    一.Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一.新增redis6380.conf, ...

  9. redis主从复制详述

    一.主从复制详述 原理其实很简单,master启动会生成一个run id,首次同步时会发送给slave,slave同步命令会带上run id以及offset,显然,slave启动(初次,重启)内存中没 ...

随机推荐

  1. # Unity 游戏框架搭建 2019 (三十四、三十五) 9 ~ 10 示例整理

    第九个示例 目前代码如下: using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif namespace QFramework { p ...

  2. kubernetes的无状态服务和有状态服务介绍

    无状态服务 1)是指该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的 2)多个实例可以共享相同的持久化数据.例如: nginx实例和tomcat实例 3 ...

  3. JasperReports入门教程(二):中文打印

    JasperReports入门教程(二):中文打印 背景 在上一篇中我们介绍了JasperReport的基本入门,也展示了一个报表.但是我们的示例都是使用的英文,如果我们把需要打印的数据改为中文会怎么 ...

  4. vnpy源码阅读学习(9)回到OptionMaster

    回到OptionMaster 根据我们对APP调用的代码阅读,我们基本上知道了一个APP是如何被调用,那么我们回到OptionMaster学习下这个APP的实现. 看看结构 class OptionM ...

  5. ubuntu17.10安装lnmp安装包的核心问题-gcc版本、g++版本

    大致碰到的问题都是这样,不是php安装失败,就是MySQL安装失败,或者Nginx也安装失败 基本上是花式报错.后来在军哥的论坛中找到了这个帖子:https://bbs.vpser.net/viewt ...

  6. beego rel/reverse

    用户可以发布多个文章 对用户来说是一对多 对文章来说是多对一 用户是主表 文章是用户的从表 rel用在从表中,给主表结构体设置主键,也就是文章表对应用户表的外键 reverse用在主表中,指定主表与从 ...

  7. dns的抓包分析

    dns: 域名系统(服务)协议 dns的解析全过程: 1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束.同时域名被缓存的时间也可通过TTL属性来设置. 2. 如果浏 ...

  8. 控制台报错 [WDS] Disconnected!

    Webpack 的 HMR 功能,是通过 WebSocket 实现的推送 JSON Patch,同时需要第三方库支持. 具体解决方案: 热加载(HMR)是 Webpack Dev Server 最强大 ...

  9. 移动App性能测评与优化1.4.4 多进程应用

    1.4.4 多进程应用 根据上一节中的描述,当一个进程结束后,它所占用的共享库内存将会被其他仍然使用该共享库的进程所分担,共享库消耗的物理内存并不会减少.实际上,对于所有共享使用了这个库的应用,Pss ...

  10. 解决 Retrofit 多 BaseUrl 及运行时动态改变 BaseUrl ?

    原文地址: juejin.im/post/597856- 解决Retrofit多BaseUrl及运行时动态改变BaseUrl(一) 解决Retrofit多BaseUrl及运行时动态改变BaseUrl( ...