【Redis7】Redis7 主从复制(重点:主从复制原理)

news2024/11/20 6:31:53

 【大家好,我是爱干饭的猿,本文重点介绍Redis7 复制。

后续会继续分享Redis7和其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】

上一篇文章:《【Redis7】Redis7 事务&管道&发布订阅》


目录

🍚1. 复制

1.1 概述

1.2 作用

1.3 基本操作 

1.4 配置一个主机,两个从机 

1.5 常用3招

1.6 复制原理

1.7 缺点


🍚1. 复制

1.1 概述

复制(replica)就是主从复制,master以写为主,Slave以读为主。
当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。

1.2 作用

  • 读写分离
  • 容灾恢复
  • 数据备份
  • 水平扩容支撑高并发

1.3 基本操作 

配从库不配主库

  • 权限细节
    • master如果配置了 requirepass 参数,需要密码登录
    • slave 需要配置 masterauth来设置检验密码,否则的话master会拒绝slave的访问请求
info replication   // 查看复制节点的主从关系和配置信息
    
replicaof/slaveof 主库IP 主库端口    // replicaof/slaveof这两个一样,一般写入进redis.conf配置文件内,在运行期间修改slave节点的信息,如果该数据库已经某个数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步

replicaof/slaveof no one    // 使当前数据库停止与其他数据库的同步,升级为主数据库

1.4 配置一个主机,两个从机 

配置一个master,两个slave,3台虚拟机,拷贝redis.conf文件

  • redis6379.conf (master)
  • redis6380.conf (slave)
  • redis6381.conf (slave)

步骤(每个机器都要配):

  1. 开启daemonize yes
  2. 注释掉bind 127.0.0.1
  3. Bprotected-mode no
  4. 指定端口
  5. 指定当前工作目录,dir Bpid
  6. 文件名字,pidfilelog
  7. 文件名字,logfile
  8. requirepass
  9. dump.rdb名字
  10. aof文件,appendfilenan
  11. (从机需要配)从机访问主机的通行密码masterauth,主机的ip、端口

     

注意:开启相应防火墙

1.5 常用3招

  1. 一主二仆

    1. 方案1 配置文件固定写死

      1. 配置两个从机 6380.conf 和 6381.conf

      2. 依次启动

      3. 主从关系查看

      4. 日志查看

      5. 命令:info replication

    2. 方案2 命令操作手动指定

      1. 去掉配置文件中配置的从属关系
      2. replicaof/slaveof no one 升级为主机
      3. replicaof/slaveof 主库IP 主库端口 称为主库的从机
      4. 配置VS命令的区别
        1. 配置,持久稳定
        2. 命令,当次生效
  2. 薪火相传
    1. 上一个slave可以是下一个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master,可以有效减轻主master的写压力
    2. 中途变更转向:会清除之前的数据,重新建立拷贝最新的
    3. slaveof/replicaof 新主库IP 新主库端口
  3. 反客为主
    1. slaveof/replicaof no one 使当前数据库停止与其他数据库的同步,转成主数据库

1.6 复制原理

  1. slave启动,同步初请
    1. slave启动成功连接到master后会发送一个sync命令
    2. slave首次全新连接master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除
  2. 首次连接,全量复制
    1. master节点收到sync命令后会在后台开始保存快照(即RDB持久化,主从复制会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化后,master将rdb快照文件和缓存的命令发送到所有slave,已完成一次完全同步
    2. 而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中,从而完成复制初始化
  3. 心跳持续,保持通信
    1. repl-ping-replica-period 10
    2. master发出PING包的周期,默认是10秒
  4. 进入平稳,增量复制
    1. master 继续将新的所有收集到的修改命令自动一次传给slave,完成同步
  5. 从机下线,重连续传
    1. master 会检查backlog里面的offset,master和slave都会保存一个复制的offset怀有一个masterId
    2. offset 是保存在backlog 中的。master只会把已经复制的offset后面的数据赋值给slave,类似断电续传

1.7 缺点

  1. 复制延时,信号衰减

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

    1. 默认情况下不会在slave节点自动重选一个master
    2. 需要人工干预

分享到此,感谢大家观看!!!

如果你喜欢这篇文章,请点赞关注吧,或者如果你对文章有什么困惑,可以私信我。

🏓🏓🏓

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

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

相关文章

navicat 远程连接oracle数据库ORA-12170及ORA-28547问题

目录 1.ORA-12170问题 2.ORA-28547 问题 1.ORA-12170问题 这是防火墙端口连接问题,需要在防火墙中设置oracle数据库端口为例外 解决方案 控制面板—windows防火墙—高级设置—入站规则—新建规则 2.ORA-28547 问题 OCI版本不兼容问题,安装的oracle客…

Python每日一练(20230423)

目录 1. 删除链表的倒数第 N 个结点 🌟🌟 2. 最小覆盖子串 🌟🌟🌟 3. 二叉树的层序遍历 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏…

OpenAI最新官方ChatGPT聊天插件接口《插件安全审查流程》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(六)(附源码)

Plugin review process 插件审查流程 前言Plugin review process 插件审查流程What we are looking for in a plugin 我们正在寻找一个插件Plugin states 插件状态Types of users 用户类型Submit a plugin for review 提交一个插件进行审核其它资料下载 前言 在 ChatGPT 中&am…

【原创】【理论+题型】二次型化标准型 +合同

(A)二次型化标准型2方法对比 1任何二次型都能化为标准,有正交变换法和配方法 2任何二次型都能通过配方法变为标准型,但不一定能通过正交变化法变 3二次型的规范型唯一,标准型不唯一 4实对称阵的(合同)对角化问题&#…

产品预览 | 系统仿真与三维专业场仿真融合——MWORKS模型降阶工具箱

1 引言 近二十年来,数字化技术迅猛发展,以美国和中国提出装备数字工程为标志,人类迈入全新的数字化时代。装备数字化需要对装备的运行状态和行为进行准确的模拟和预测,这就需要利用系统仿真技术。系统仿真技术能够综合考虑装备的…

Golang每日一练(leetDay0044)

目录 130. 被围绕的区域 Surrounded Regions 🌟🌟 131. 分割回文串 Palindrome Partitioning 🌟🌟 132. 分割回文串 II Palindrome Partitioning II 🌟🌟🌟 🌟 每日一练刷题专…

启扬方案:瑞芯微3568智慧安防NVR设备解决方案

物联网技术和人工智能技术的发展和应用,让安防行业的视频监控从简单的看见画面到自动识别智能研判,大大地提高视频监控的智能化,提升监控效率。随着智慧城市、智慧交通、智慧社区等项目的实施,面对道路交通、银行、家庭、商场、楼…

App复杂动画实现——Rive保姆级教程 | 京东云技术团队

作者:京东物流 沈明亮 在App开发过程中,如果想实现动画效果,可以粗略分为两种方式。一种是直接用代码编写,像平移、旋转等简单的动画效果,都可以这么干,如果稍微复杂点,就会对开发工程师的数学功…

如何提升电脑使用体验?试试这5款免费软件吧

今天推荐5款实用的开源软件,它们可以极大地提高你的工作和生活效率,让你办公学习的体验更加舒适。 屏幕截图工具——ShareX ShareX是一款免费的开源软件,可以让你快速地捕捉屏幕上的任何区域,并将其保存为图片或视频文件。你还可以使用ShareX来上传你的…

chatgpt智能提效职场办公-ppt怎么做流程图

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 制作PPT流程图的步骤如下: 打开 PowerPoint,选择自己要制作流程图的PPT页面。 在页面中点击“插入”选项卡&am…

gcc编译的过程

文章目录 前言一、gcc 编译四步骤二、gcc编译常用参数三、文件后缀名对应表四、预处理五、编译六、汇编七、链接1、静态链接2、动态链接 前言 GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过 gcc 命令就可以将源文件编译成可执行文件。 一…

人机识别技术再升级,AIGC为验证码带来万亿种新变化

网上输入关键词“破解验证码”,会出现1740万个搜索结果。“验证码识别、轻松破解、暴力破解、逻辑漏洞破解、简单破解”等等各类关键词的内容,不一而足,关于“如何用破解某某验证码”的帖子更是多如牛毛。 搜索引擎的相关结果 2017年&#xf…

线程池的构造方式

线程池的构造方式 两类构造方式7种实现方法7种线程池的具体使用FixedThreadPoolCachedThreadPoolSingleThreadExecutorScheduledThreadPoolSingleThreadScheduledExecutornewWorkStealingPoolThreadPoolExecutor 说明总结 两类构造方式 在Java语言中,并发编程都是通…

【重新定义matlab强大系列三】MATLAB清洗离群数据(查找、填充或删除离群值)

🔗 运行环境:matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

异常详解

一、初识异常 异常概念: 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 而运行时指的是程序已经编译通过得到 class 文件了, 再由 JVM 执行过程中出现的错误。 1.除以 0 System.out.println(10 / 0); // 执行结果 Exception in thread "…

02 - 学会提问

学会提问 一、引言 1.1 GPT简介 GPT(Generative Pre-trained Transformer)是一种基于Transformer架构的大型预训练语言模型。 凭借其强大的文本生成、理解和处理能力,GPT已在诸如自然语言处理、机器翻译、文本摘要等多个领域取得了显著的…

python+vue 高校资助系统

其中各子模块的主要功能如下: 1、用户登录:用户进入系统先输入用户名与密码,选择权限登录,用户登录成功,要记录登录的用户名和登录类型。 2、学生注册:学生注册填写学号、密码、确认密码、学生姓名、邮箱、…

Python小姿势 - Python操作MongoDB数据库

Python操作MongoDB数据库 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 现在&a…

Leetcode力扣秋招刷题路-0295

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 295. 数据流的中位数 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 …

springboot,Flowable 流程实例的激活与挂起(二)

一.简介 接上一篇 springboot&#xff0c;Flowable 流程实例的激活与挂起&#xff08;一&#xff09; 二.流程实例的挂起与激活 1.流程实例的挂起 挂起一个流程实例的代码如下&#xff1a; Test void test08() {List<ProcessDefinition> list repositoryService.cr…