
【Redis】主从复制之repl_backlog(部分复制、断点续传)
发布日期:2021-05-08 11:07:40
浏览次数:23
分类:精选文章
本文共 913 字,大约阅读时间需要 3 分钟。
文章目录
1. 前言
注意,repl_backlog只针对部分复制(Partial Replication),而非全量复制。
本文内容基于redis-5.0.5(截至2019/6/6的最新版本),本文深入介绍REdis主从复制的部分复制核心要素repl_backlog,与其相关的配置直接影响主从间的稳定性,对提升集群的稳定性十分重要。
注意REdis的主节点把所有从节点也当作一个Client看待,正常的数据同步并不涉及repl_backlog。当从节点断开重连,这个时候repl_backlog的作用就体现出来了
。截至到5.0.5版本,从节点重启用不上repl_backlog,原因是从节点没有保存repl_backlog的信息,无法实现部分同步,但可少量改动REdis源代码,实现从节点重启后的部分复制。
正常情况下,主节点会往从节点连接缓冲区写一份数据,同时往repl_backlog也写一份数据,所有从节点共享同一份repl_backlog,因此可以考虑repl_backlog配置大一点,以容忍从节点更长时间失联。
从节点向主节点发送命令PSYNC,触发部分复制。有关REdis主从复制的细节,请参见《REdis复制研究》。
与PSYNC命令相对的是SYNC,没有P字母,这是之前旧版的同步方式
2. 配置项
REdis的复制分全量复制和部分复制,全量复制是个很重的过程,而部分复制则是轻量的,部分复制实际是一个增量复制。
REdis的主节点创建和维护一个环形缓冲复制队列(即repl_backlog),从节点部分复制(增量复制)的数据均来自于repl_backlog。
主节点只有一个repl_backlog,所有从节点共享,直接相关的配置项有两个:
repl-backlog-size
环形缓冲复制队列大小,可不带单位,但同时支持单位:b、k、kb、m、mb、g、gb,单位不区分大小写,其中k、m、g间的计算倍数是1000,而kb、mb和gb的计算倍数是1024。repl-backlog-ttl
环形缓冲复制队列存活时长(所有slaves不可用时,保留repl_backlog多长时间,单位:秒)
参考:
发表评论
最新留言
不错!
[***.144.177.141]2025年03月29日 19时05分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(原创)在Linux上安装运行Python3(CentOS7为例)
2021-05-08
weblogic之cve-2015-4852
2021-05-08
Java注释
2021-05-08
水调歌头·1024
2021-05-08
C++ 函数重载
2021-05-08
Nginx简介
2021-05-08
Nginx的Gzip功能
2021-05-08
Azure Storage 系列(四)在.Net 上使用Table Storage
2021-05-08
abstract关键字的使用
2021-05-08
.NET微信网页开发之使用微信JS-SDK调用微信扫一扫功能
2021-05-08
解决Spirng注入时名称下的红色波浪线
2021-05-08
使用mybatis-generator生成底层
2021-05-08
Android APK 重签名
2021-05-08
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
2021-05-08
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
2021-05-08
Mybatis【7】-- Mybatis如何知道增删改是否成功执行?
2021-05-08
计算输入的一句英文语句中单词数
2021-05-08
lvs+keepalive构建高可用集群
2021-05-08