Redis系列--主从复制

news2024/11/13 16:21: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.coloradmin.cn/o/536182.html

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

相关文章

chatGpt 对前端的开发帮助

chatGpt 是 什么? ChatGPT是一个基于GPT-3的聊天机器人,可以用来帮助前端开发人员解决各种问题。它可以回答关于前端开发的各种问题,包括HTML、CSS、JavaScript、React、Vue等等。它可以提供代码片段、示例代码、文档链接等等,帮助…

javascript 创建 array

javascript 创建 array 补一下笔记,constructor 这块之前还真没怎么太琢磨过…… 最常见的就是 literal array syntax: const arr1 [1, 2, 3];console.log(arr1);这是最主流的用法,也是目前最推荐的用法,原因有以下几点: 这是…

SOLIDWORKS 30个使用技巧

很多人在学习SolidWorks时,会有很多疑问,都不知道如何解答,所以走了很多弯路。今天,我们就来讲讲在学习SolidWorks中的那些小技巧吧! 1、按“空格键:”弹出快捷菜单双击某一视图,模型将转向某一…

3分钟带你入门接口自动化测试(建议收藏)

接口测试简介 1) 什么是接口测试 开始学习接口自动化测试之前,我们先要来了解什么是接口,以及什么是接口测试。 我们都知道,测试从级别上划分可以分为 ◆ 组件测试 ◆ 集成测试 ◆ 系统测试 ◆ 验收测试 其中在集成测试这个…

Vue3系列——computed、watch

目录 Computed watch 侦听单个数据 侦听多个数据 immediate deep 精确侦听对象的某个属性 Computed 计算属性computed是依赖于使用它的数据,当数据发生变化时,自定义方法重新调用执行一次计算属性,监测的是依赖值,依赖值不…

GPT专业应用:生成会议通知

正文共 917 字,阅读大约需要 3 分钟 公务员/文秘必备技巧,您将在3分钟后获得以下超能力: 快速生成会议通知 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●图…

Qt6之万能数据类型QVariant详解

QVariant,被称为万能数据类型,实际上它是类似C的联合union类型。简单的说自定义性能强就像一个盒子几乎可以让你放任意的qt类型,同时可以轻松构造任意类型的任意复杂数据结构,但请注意复杂类型意味着性能和效率的让步。 qt6在文档…

好的CRM系统拥有哪些功能

随着客户对企业的重要性越来越高,他们需要一款好用的CRM系统来帮助他们管理客户、销售管道和营销活动。那么国内目前比较好的CRM系统有哪些?下面我们来详细说一下。 国内有很多知名的CRM系统,从本土品牌到国际厂商都有。选择 CRM以高性价比、…

永久免费域名PP.UA最新注册指南

PP.UA是乌克兰个人的域名,支持CF托管,可用于建站或者个人代理用,其永久免费(每年续期即可)。不过网上关于这个免费域名的申请教程已经全部过期了,多数都是2021年的,本次我来做一个最新的可用教程…

【Redis】Redis 命令之 String

文章目录 ⛄String 介绍⛄命令⛄对应 RedisTemplate API⛄应用场景 ⛄String 介绍 String 类型,也就是字符串类型,是Redis中最简单的存储类型。 其value是字符串,不过根据字符串的格式不同,又可以分为3类: ● string&…

flutter系列之:使用AnimationController来控制动画效果

文章目录 简介构建一个要动画的widget让图像动起来总结 简介 之前我们提到了flutter提供了比较简单好用的AnimatedContainer和SlideTransition来进行一些简单的动画效果,但是要完全实现自定义的复杂的动画效果,还是要使用AnimationController。 今天我…

H桥电机驱动芯片CS9029C可pin对pin兼容DRV8841

CS9029C为打印机和其它电机一体化应用提供一种双通道集成电机驱动方案。CS9029C有两路H桥驱动,最大输出2.5A,可驱动两路刷式直流电机,或者一路双极步进电机,或者螺线管或者其它感性负载。双极步进电机可以以整步、2细分、4细分运行…

未来源码|Dart 3正式发布:100%健全的空值安全、迄今为止最大版本

推荐语: 自从 Flutter Forword 发布了 Dart 3α 预览 之后,大家对 Dart 3 的正式发布就一直翘首以待,这不仅仅是 Dart 版本号追上了 Flutter 版本号,更是 Dart 在 2.0 之后迎来的最大一次更新。Dart 3将只支持健全的Null安全&am…

微信小程序等待wx.requestPayment的回调函数执行完后再执行后续代码

async/await & Promise的再认识 背景 在开发微信小程序过程中,遇到如下需求: 需要等待wx.requestPayment的回调函数执行完后再执行后续代码 这是因为在调用wx.requestPayment之后,会弹出一个支付弹窗,如果此时点击右上角的…

从ChatGPT到大模型

AIGC AIGC1. 关于ChatGPT2. 关于大模型模型即服务。现在大模型的两种:大模型发展趋势:大模型作用:大模型核心: 3. 要复现一个ChatGPT需要的资源支持?4. ChatGPT的局限性5. 类ChatGPT 未来的发展ChatGPT 体现的通用性&…

Java从高德地图获取全国地铁站数据

Java从高德地图获取全国地铁站数据。 数据来源(高德地图):http://map.amap.com/subway/index.html?&4401 采集代码 /*** 从高德地图地铁线路同步全国地铁站数据(非必要不调用)* 数据来源:http://ma…

【电厂用 JL-8D/3X2定时限电流继电器 复合继电器 功耗低 JOSEF约瑟】

JL-8D/3X2定时限电流继电器名称;定时限电流继电器型号:JL-8D/3X2触点容量250V5A功率消耗<5W返回系数0.90.97整定范围0.039.9A;0.130A辅助电源24220VDC/AC 系列型号: JL-8D/3X1定时限电流继电器; JL-8D/3X111A2定时限电流继电器&#xff1b…

深度操作系统 deepin V23 Beta 发布

深度操作系统 deepin V23 发布了首个 Beta 版本。 公告写道,它是 V23 Alpha 版本的一次升级,但不建议用于生产环境。作为一个专注于用户体验的系统,Deepin v23 beta 版本引入了许多新的特性,包括 DDE 新变化、终端、跨版本升级以…

Agilent安捷伦33522B任意波形发生器

Agilent安捷伦33522B任意波形发生器30兆赫 2通道 为您最苛刻的测量生成全方位信号的无与伦比的能力 具有 5 倍低谐波失真的正弦波,可提供更纯净的信号 脉冲频率高达 30 MHz,抖动减少 10 倍,可实现更精确的计时 具有排序功能的逐点任意波形功能…

Notepad++ 添加自定义右键菜单项

目录 1. 背景 020.添加右键菜单项 - “打开至” 030.添加右键菜单项 - “复制到剪切板” 效果图: 1. 背景 笔记本上使用Notepad,会因为存在标签栏,导致窗口能显示的行数减少。 去除标签栏后,又无法操作一些右键菜单。 转而开…