【Redis】主从复制分析-使用

Reids 主从复制:
将一台 Redis 服务器的数据, 复制到其他的 Redis 服务器。前者称为主节点 (master), 后者称为从节点 (slave)。
数据的复制是单向的, 只能由主节点到从节点, 同时主节点以写为主 (可写也可以读), 从节点只能读不可写入。

1 主从复制的建立

本文简单的介绍一下如何配置一个 一主两从的 Redis 主从复制集群。

假设
主节点 192.168.0.1, 端口为 6379
从节点 1 192.168.0.2, 端口为 6379
从节点 2 192.168.0.3, 端口为 6379

1.1 方式一: 过配置文件进行配置

  1. 在 2 个从节点的 redis.conf 文件中追加 slaveof 192.168.0.1(主节点的 IP) 6379(主节点的端口)
  2. 启动主节点, 再依次启动从节点, 这样一主两从的配置就完成了

1.2 方式二: Redis 启动时指定主节点

  1. 启动主节点
  2. 再启动 2 个从节点, 在启动的参数追加: –slaveof 192.168.0.1(主节点的 IP) 6379(主节点的端口), 即 ./redis-server --slaveof 192.168.0.1 6379

1.3 方式三: Redis 运行中指定主节点

  1. 主从节点都正常的启动
  2. 在 2 个从节点都执行命令 slaveof 192.168.0.1(主节点的 IP) 6379(主节点的端口)

上面就是 3 种建立主从复制的方式。
建立了连接后, 从节点可以通过 slaveof no one 断开连接, 断开了连接后, 从节点会自动变为主节点。

2 主从复制节点信息查看

主节点连接上从节点, 执行 info replication 就能查看到当前从节点的信息, 大体如下 (截取了主从复制相关的)

# Replication# 节点角色: 从节点
role:slave
# 主节点的 IP
master_host:192.168.0.1
# 主节点的端口
master_port:8888
# 主节点的连接状态
master_link_status:up
# 主节点最后与从节点的通信时间间隔, 单位秒
master_last_io_seconds_ago:0
# 从节点是否正在全量同步主节点的 RDB 文件
master_sync_in_progress:0       
# 复制偏移量
slave_repl_offset:407
# 从节点的优先级
slave_priority:100
# 从节点是否只读, 一般情况从节点都是只读的, 但是也可以通过在配置文件中配置 slave-read-only 或者 config set 强制修改为可写可读
slave_read_only:1 
# 连接从节点的个数, Redis 支持从节点后面继续配置从节点
connected_slaves:0
# 当前从节点作为其他从节点的主节点时的复制偏移量
master_repl_offset:0# 以下四种信息为主从节点通用的配置# 复制缓冲区的状态
repl_backlog_active:0 
# 复制缓冲区的大小
repl_backlog_size:1048576
# 复制缓冲区起始偏移量, 标识当前缓冲区可用的范围
repl_backlog_first_byte_offset:0
# 标识复制缓冲区已存在的有效数据长度
repl_backlog_histlen:0 

同样的, 从节点连上主节点后, 也可以通过 info replication 查看到当前主节点的信息


# 节点角色: 主节点
role:master  
# 连接从节点的个数
connected_slaves:2
# 连接从节点的信息
slave0:ip=192.168.0.2,port=6379,state=online,offset=631,lag=0
slave1:ip=192.168.0.3,port=6379,state=online,offset=631,lag=0 
# 主节点的偏移量
master_repl_offset:631 # 以下四种信息为主从节点通用的配置# 复制缓冲区的状态
repl_backlog_active:1 
# 复制缓冲区的大小
repl_backlog_size:1048576
# 复制缓冲区起始偏移量, 标识当前缓冲区可用的范围
repl_backlog_first_byte_offset:2
# 标识复制缓冲区已存在的有效数据长度
repl_backlog_histlen:630                                        

3 主从复制的其他配置


# 从节点是否只读,默认为 true
slave-read-only true# 无盘复制, 默认为 no
# 在全量复制时, 主节点会将自身所有的数据生成为 1 个 RDB 文件, 然后发送给从节点
# 这种发送的方式有 2 种
# 1. 有盘复制: 主节点将 RDB 文件先写入到自己的磁盘, 再发送给从节点
# 2. 无盘复制:主节点直接将 RDB 文件通过 Socket 发送给从节点
# 无盘复制, 在主节点开始传输时, 新进来从节点会先排成队列,等待一段可以配置的时间, 竟可能的等待多个从节点到达, 进行并行传输
repl-diskless-sync no# 无盘复制, 从节点延迟等待的时间, 默认为 5 秒
repl-diskless-sync-deplay 5# 从节点向主节点发送心跳的时间间隔, 默认 10 秒
repl-ping-slave-period 10 # yes 主节点将使用更小 tcp 包和更少宽带向从节点发送数据, 但是这个会造成延迟
# no  反过来, 延迟会减少, 但会使用更多的宽带
# 默认为 no
repl-disable-tcp-nodelay no# 复制的超时时间, 默认为 60 秒
# 使用到的场景
# 1. 从节点同步数据时, 连接主节点超时
# 2. 主节点向从节点发送 ack ping 超时
# 3. 从节点连接主节点超时
repl-timeout 60# 复制积压缓冲区大小, 默认为 1m
repl-backlog-size 1mb# 主节点没法连接到从节点超过配置的时间, 复制积压缓冲区数据清掉
repl-backlog-ttl 3600# 从节点 priority 越低, 有着越高的保证,当主节点挂断的时候, 越有可能成为主节点
slave-priority 100# 所有从节点的延迟 (lag) 值, 大于或等于 10, 主节点拒绝执行写命令
min-slaves-max-lag 10 # 从节点数量少于 3 个, 主节点拒绝执行写命令
min-slaves-to-write 3# 当前节点作为从节点, 暴露给主节点的端口, 这个没有配置, 使用当前节点的运行的端口
slave-announce-port 6666# 当前节点作为从节点, 暴露给主节点的 IP
slave-announce-ip 127.0.0.1

4 主从复制特点

一主多从的特点:

  1. 主节点挂了, 从节点依然还是从节点, 无法变为主节点
  2. 主节点挂了, 重启后, 还是为主节点

1.5 参考

redis主从相关配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50590.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解CSS中的变量(概念篇)

CSS变量,也称为自定义属性,是一种在CSS中定义和重用值的方式。它们允许开发者在一个地方定义样式值,然后在整个样式表中引用这些值,从而提高代码的可维护性和可读性。 1、定义和使用CSS变量 CSS变量的定义和使用非常简单。变量名以两个连字符开头,变量值为任何有效的CSS…

常用自启设置

一、开机自启动 1、编辑 vi /lib/systemd/system/nginx.service 文件,没有创建一个 touch nginx.service 然后将如下内容根据具体情况进行修改后,添加到nginx.service文件中: [Unit] Descriptionnginx Afternetwork.target remote-fs.targ…

jdk版本区别

JDK(Java Development Kit)是 Java 开发工具包,它包括了 Java SE(Standard Edition)、编译器、调试器和其他开发工具。Oracle 公司是 JDK 的主要供应商,它提供了多个版本的 JDK,每个版本都有自己…

SPL 算法详解

1. 引言 SPL(Single-Precision Linear)算法是一种在计算机图形学和数据处理领域中常用的线性插值算法。线性插值用于在已知数据点之间估计未知数据点,通过简单的线性计算,SPL 算法可以快速、有效地实现这一目标。本文将详细介绍 …

SQLException:Operation not allowed after ResultSet closed

运行代码时出现的错误: 这是在运行简单的JDBC访问数据库时出现的问题,原因是在ResultSet方法中添加了close()关闭方法,如图: ResultSet 是通过 query 方法获得的,并且在 try-catch 块中没有显式地关闭它。这实际上是 一个常见的…

暴雨宅家?AI拯救你的无聊暑假!高中生必藏神器大公开

嘿,各位高中生朋友们,最近是不是被这没完没了的暴雨困在家里,感觉暑假生活都快发霉了?别急,今天我要揭秘一个宝藏网站—— ai123.cn,它简直就是咱们暑期宅家必备的救星!接下来,我就来…

whaler_通过镜像导出dockerfile

1、Whaler简介 Whaler:从镜像导出Dockerfile,whaler英文释义捕鲸船。 2、下载安装 # wget -cO /usr/local/bin/whaler https://github.com/P3GLEG/Whaler/releases/download/1.0/Whaler_linux_amd64 3、赋予可执行权限 [rootlocalhost ~]# chmod x /usr/local/…

【elasticsearch实现优先展示连词并按某个字段折叠显示最新一条】

elasticsearch实现优先展示连词并按某个字段折叠显示最新一条 前言match_phrase 顺序前缀 boost 权重collapse 折叠基本用法高级功能排序 前言 场景要求: 优先展示关键词连词的商品按照某个字段折叠相同字段,并按指定排序字段选择第一个 match_phras…

Web漏洞扫描工具(AWVS、Goby)

一、背景 想针对自己项目或者小公司的Web安全做相关扫描,自己做漏洞进行自查工作,能够减少自身系统的安全风险,提高系统的安全性。但是没有找到一些开源性质的、扫描质量比较高的相关工具,使用安全公司的专业产品价格又承受不起。…

loj2143组合题解

组合 求 ∑ i 0 ∞ C n k i k r \sum_{i0}^{\infty} C_{n k}^{i kr} ∑i0∞​Cnkikr​ 模 p p p 的值。 这道题题目非常的善良,直接把式子送给我们了,那我们直接开始推式子: ∑ i 0 ∞ C n k i k r ∑ i 0 ∞ ∑ j 0 w C w j C n…

Dav_笔记11:SQL Tuning Overview-sql调优 之 4

开发高效的SQL语句 本节介绍了提高SQL语句效率的方法: ■验证优化程序统计信息 ■审查执行计划 ■重构SQL语句 ■重组索引 ■修改或禁用触发器和约束 ■重组数据 ■随着时间的推移维护执行计划 ■尽可能少地访问数据 验证优化程序统计信息 查询优化器在确定最佳执行…

每日一练,java06

这里写目录标题 题目1.局部变量能否和成员变量重名?2.下面哪个不属于HttpServletResponse接口完成的功能?3.以下代码结果是什么?4.实现或继承了Collection接口的是()知识点局部变量与成员变量重名equals与HttpServletR…

5. 开发环境搭建

1. 概述 基于ubuntu20.04搭建开发环境 2. 开发环境安装 恒玄SDK编译,依赖gcc-arm的编译工具,编译工具由恒玄提供; 2.1 配置编译工具链的环境变量 修改~/.profile文件 source ~/.profile 2.2 安装依赖包 sudo apt install ccache sudo a…

Spring框架笔记详解

主要讲解了Spring框架的基本内容,可以当作笔记需要的时候查看!!! 文章目录 前言Spring1、Spring简介1.1、Spring概述1.2、Spring家族1.3、Spring Framework1.3.1、Spring Framework特性1.3.2、Spring Framework五大功能模块 2、IO…

一刷代码随想录(回溯4)

递增子序列 题意: 给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会…

【最新】cuda和cudnn和显卡驱动的对应关系

NV官方文档Support Matrix — NVIDIA cuDNN v9.2.1 documentation下列的非常清楚,如图:

【SpringBoot】 4 Thymeleaf

官网 https://www.thymeleaf.org/ 介绍 Thymeleaf 是一个适用于 Web 和独立环境的现代服务器端 Java 模板引擎。 模板引擎:为了使用户界面和业务数据分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎会生成一个标准的 html 文档…

目标检测损失计算部分(YOLO)

ComputeLoss 标准化坐标的增益张量 标准化坐标的增益张量(gain tensor)用于将归一化的目标转换为特定特征层的网格尺度,以便进行匹配和计算。 在目标检测模型中,输入图像被划分为多个网格,每个网格负责预测多个锚框…

【Git】Git小项目模型梳理

事情的起因是笔者正在做的项目,是一个小团队,团队成员不到5人,且项目处于第一个生产版本的创建过程中,为没有合适的Git模型而犹豫了很久,最终确定的模型和最初的也有不同。特此记录,主要是为了个人总结&…

捉虫笔记(1)之 WinDbg符号配置

WinDbg符号配置 1、WinDbg简单介绍 WinDbg 是微软的一款强大的调试工具,用于 Windows 平台的内核和用户模式调试。它提供了一系列强大的功能,包括内存和寄存器的查看、断点设置、堆栈跟踪、性能分析等。 WinDbg 的历史可以追溯到微软早期的调试工具&a…