Redis系列--主从复制

news/2025/2/12 1:00:18/

一、redis主从复制介绍

在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这期间 master 发生了什么, slave 都将尝试让自身成为 master 的精确副本。

一句话就是主从复制,master以写为主,slave以读为主。当master数据变化时,自动将新数据异步同步到其他slave数据库当中去。数据的复制是单向的,只能由主节点到从节点

二、作用 

1、读写分离

2、容灾恢复

3、数据备份

4、水平扩容支撑高并发

三、 配置以及命令

四、主从复制三种常见配置

一、一主两从

一、一主两从两种配置

1、直接配置文件配置,重启还会生效(具体配置请看官网)

2、使用命令配置,只是临时配置,重启失效

二、一主两从常见问题

1、从机是否可以执行写命令?

从机不可以执行写命令

 2、从机切入点问题 ,也就是slave是从头开始复制还是从切入点开始复制?

假设:

  master启动,写到k3

  slave1跟着master同时启动,跟着写到k3

  slave2写到k3后才启动,那之前的也是会复制过来的

3、主机shutdown后情况如何?从机是变为master还是原地待命    

从机不动,原地待命,从机数据可以正常使用;等待主机重启动归来 

4、 主机shutdown后,重启后主从关系还在吗?从机能够顺利复制

主从关系依旧在,也能顺利复制

 二、slaveof 新主库ip 新主库端口

其实就是上一个slave可以作为下一个slave的master,slave同样可以接收其他slave的连接和同步请求,那么该slave作为下一个的master,可以有效减轻主master的写压力。

 这种其实就是改变了一下数据同步的方向,其实6380还是不能进行写操作

使用命令:slaveof 新主库ip 新主库端口

 三、slaveof no one

使当前数据库停止与其他数据库的同步,转成主数据库

五、主从复制原理以及工作流程

slave启动,连接master:

1、slave启动成功连接到master后会发送一个同步命令

2、slave首次全新连接到master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除。

首次连接,全量复制:

3、master节点收到同步命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据命令缓存起来,master节点执行RDB持久化完成后,master将rdb快照文件和所有缓存的命令发送到所有slave,已完成一次完全同步

4、而slave服务器在接收到数据库文件数据后,将其存盘并加载到内存中,从而完成复制初始化。

保持通信:

5、master会发出PING包给slave,以此来确认slave是否存活。默认时间是10s

6、当第一次全量复制后,master如果有新增的数据,将会收集新的数据自动一次传给slave,完成同步

从机下线,重连续传:

7、当slave宕机或者下线后,master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterId。master只会把已经复制的offset后面的数据复制给slave,类似于断点续传。

六、主从复制的缺点

 1、复制延时,信号衰减

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

2、master挂了,slave不会自动重选一个master,且s剩余的slave不能执行写命令。每次master挂了都只能人工干预


http://www.ppmy.cn/news/71973.html

相关文章

含sop的配电网重构(含风光|可多时段拓展)

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 之前分享了很多配电网重构的程序,每个程序针对场景限定性比较大,程序初学者修改起来难度较大,本次分享一个基础程序,针对含sop的配电网重构模型,含风电和光伏&…

简单分享线程池的设计

温故而知新,可以为师矣。 线程池是什么 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。 池化思想,就是为了提高对资源的利用率,减少对资源的管理&a…

【黑马2023大数据实战教程】VMWare虚拟机部署HDFS集群详细过程

文章目录 部署HDFS集群1.配置workers:2.配置hadoop-env.sh文件3.配置core-site.xml文件4.配置hdfs-site.xml文件准备数据目录分发Hadoop文件夹配置环境变量授权为hadoop用户格式化文件系统错误排查方法!! 视频:黑马2023 VMWare虚拟机部署HDFS集群 注意!这…

网络安全里的主要岗位有哪些?小白如何快速入门?

入门 Web 安全、安卓安全、二进制安全、工控安全还是智能硬件安全等等,每个不同的领域要掌握的技能也不同。当然入门 Web 安全相对难度较低,也是很多人的首选。主要还是看自己的兴趣方向吧。 本文就以下几个问题来说明网络安全大致学习过程&#x1f447…

操作系统实验三 内存分配及回收研究

前言 本次实验跟前两次相比简单许多,主要是体会底层的一些运行机制。其实,要说简单,也不是真的很简单,毕竟还是存在一些更底层的东西需要我们去探讨。接下来就让我们通过实验来感受一下。 1.实验目的 掌握Linux操作系统的内存分…

Nacos之服务配置中心

1.基础配置 1.1.新建模块cloudalibaba-config-nacos-client3377 1.1.1.POM <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance…

如何利用Jmeter从0到1做一次完整的压测

压测&#xff0c;在很多项目中都有应用&#xff0c;是测试小伙伴必备的一项基本技能&#xff0c;刚好最近接手了一个小游戏的压测任务&#xff0c;一轮压测下来&#xff0c;颇有收获&#xff0c;赶紧记录下来&#xff0c;与大家分享一下&#xff0c;希望大家能少踩坑。 一、压测…