4.redis-主从复制

news2024/11/25 10:58:37

01-主从复制概述

  • 单机redis存在的问题

    • ①硬盘故障, 导致数据丢失, redis不好用;
    • ②内存容量受限制, 单台服务器内存扩展有上限, 内存数据超过该上线, 该如何处理.
  • 解决方案

    • image-20230304092802133

    • 1个master可以有多个slave, 1个slave只能对应1个master

    • master: 主机, 可以读也可以写, 主要负责写.

    • slave: 从机, 只能读.

    • 保证master和slave数据同步.

  • 主从复制

    • 将master中的数据实时地, 有效地同步到从机.
  • 好处

    • 读写分离: master只负责写, slave只负责读
    • 负载均衡: 多台redis服务器分担客户端负载
    • 故障恢复: master宕机, 由slave提供服务
    • 数据冗余: 数据备份到多台redis服务器
    • 高可用: 是哨兵和集群的基础

02-主从复制搭建及演示

  • 需求

    • 搭建1主1从的结构
  • 配置说明

    #从机的配置文件
    slaveof 主机ip 主机port
    
  • ①master配置文件

    port 6379
    daemonize no
    # logfile "log-6379.log"
    maxclients 100000
    timeout 0
    loglevel debug
    
    # RDB设置
    # 1.设置rdb文件名
    dbfilename "dump-6379.rdb"
    
    # 2.设置rdb文件存储路径
    dir /usr/local/redis-6379/data
    
    # 3.设置存储rdb时是否压缩数据
    rdbcompression no
    
    # 4.设置读写文件过程是否进行RDB格式校验
    rdbchecksum no
    
    # 5.后台存储过程中如果出现错误现象,是否停止保存操作
    stop-writes-on-bgsave-error yes
    
    # 6.每隔10秒检测一次,有2个数据变化就执行bgsave指令
    save 10 2
    
    # AOF设置
    # 1.开启aof持久化功能
    appendonly yes
    # 2.设置aof文件名
    appendfilename 'appendonly-6379.aof'
    # 4.设置aof策略
    appendfsync everysec
    
    # 5.当前aof文件大小达到64mb,自动触发AOF重写
    auto-aof-rewrite-min-size 64mb
    # 5.当前aof文件大小比之前aof文件大小增加了100%,自动触发AOF重写
    auto-aof-rewrite-percentage 100
    
    protected-mode no
    
  • ②slave配置文件

    port 26379
    daemonize no
    # logfile "log-26379.log"
    maxclients 100000
    timeout 0
    loglevel debug
    
    # RDB设置
    # 1.设置rdb文件名
    dbfilename "dump-26379.rdb"
    
    # 2.设置rdb文件存储路径
    dir /usr/local/redis-26379/data
    
    # 3.设置存储rdb时是否压缩数据
    rdbcompression no
    
    # 4.设置读写文件过程是否进行RDB格式校验
    rdbchecksum no
    
    # 5.后台存储过程中如果出现错误现象,是否停止保存操作
    stop-writes-on-bgsave-error yes
    
    # 6.每隔10秒检测一次,有2个数据变化就执行bgsave指令
    save 10 2
    
    # AOF设置
    # 1.开启aof持久化功能
    appendonly yes
    # 2.设置aof文件名
    appendfilename 'appendonly-26379.aof'
    # 4.设置aof策略
    appendfsync everysec
    
    # 5.当前aof文件大小达到64mb,自动触发AOF重写
    auto-aof-rewrite-min-size 64mb
    # 5.当前aof文件大小比之前aof文件大小增加了100%,自动触发AOF重写
    auto-aof-rewrite-percentage 100
    
    protected-mode no
    
    #主机ip和主机port
    slaveof 192.168.199.110 6379
    
  • ③启动主机

    • gqwa34w3yu4h6
  • ④启动从机

    • rfw3afr3q4aweetfg
  • ⑤演示主从结构

    • 分别使用redis客户端链接主机和从机操作读写指令.

03-主从复制之建立链接阶段

  • 建立链接阶段

    • gvae4yhu654twe3s
  • 总结

    • ①master保存了slave的port
    • ②slave保存了master的host和port
    • ③master和slave建立心跳机制(ping/pong)

04-主从复制之数据同步阶段

  • 数据同步阶段

    • fay45632w7y7u463
  • 总结

    • ①第一次链接, 通过全量复制(RDB)将master的数据备份到slave
    • ②后续的指令, 通过部分复制(AOF)将master的数据备份到slave

05-部分复制的三要素

  • 三要素
    • ①服务器运行id(run id)
    • ②主服务器的复制缓冲区
    • ③主从服务器的复制偏移量
  • ①服务器运行id(run id)
    • w4hyio8ku65q23e4ftft
  • ②主服务器的复制缓冲区
    • tgy53r4vdewqauyh456w3tes
  • ③主从服务器的复制偏移量
    • 从机应该从哪里开始执行部分复制
    • 1个master有多个偏移量, 1个slave有一个偏移量

06-主从复制之命令传播阶段

  • 命令传播阶段
    • 当master数据库状态被修改后,导致主从服务器数据库状态不一致,此时需要让主从数据同步到一致 的状态,同步的动作称为命令传播 master将接收到数据变更命令发送给slave,slave接收命令后执行
  • 网络出现问题
    • 网络闪断闪连,可以忽略
    • 短时间网络中断,部分复制 (AOF)
    • 长时间网络中断,全量复制(RDB)

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

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

相关文章

MySQL运维24-SHOW ENGINE INNODB STATUS解析

文章目录1、SHOW ENGINE INNODB STATUS概述2、信号量(Semaphores)2.1、信号量信息示例2.2、信号量信息说明2.3、知识点:CPU自旋(SPIN)2.3、信号量中的OS WAIT ARRAY INFO3、死锁3.1、死锁信息示例3.2、死锁信息说明4、外键冲突4.1、外键冲突信…

elementUI实现selecttree自定义下拉框树形组件

elementUI有select组件也有tree组件&#xff0c;但是就是没有下拉框和tree组件的结合体&#xff0c;那么这次我们就自定义一个。 效果图 引入组件 <select-tree ref"selectTree" treeChange"treeChangeFun" :dataArray"orgList" :value"…

【网络安全】文件上传漏洞及中国蚁剑安装

文件上传漏洞描述中国蚁剑安装1. 官网下载源码和加载器2.解压至同一目录并3.安装4.可能会出现的错误文件上传过程必要条件代码示例dvwa靶场攻击示例1.书写一句话密码进行上传2. 拼接上传地址3.使用中国蚁剑链接webshell前端js绕过方式服务端校验请求头中content-type黑名单绕过…

《花雕学AI》22:一种让AI模拟虚拟角色方法,足以更多创造力的ChatGPT角色扮演

一、什么是ChatGPT的角色扮演&#xff1f; ChatGPT是一种基于GPT-3模型的人机对话技术&#xff0c;它可以实现自然语言和计算机之间的交互。ChatGPT的角色扮演指的是让模型扮演一个虚构的人物&#xff0c;与用户进行设定好的对话。 例如&#xff0c;您可以让ChatGPT扮演一个关…

一文打通锁升级(偏向锁,轻量级锁,重量级锁)

前置知识&#xff1a;synchronized 在JavaSE1.6以前&#xff0c;synchronized都被称为重量级锁。但是在JavaSE1.6的时候&#xff0c;对synchronized进行了优化&#xff0c;引入了偏向锁和轻量级锁&#xff0c;以及锁的存储结构和升级过程&#xff0c;减少了获取锁和释放锁的性能…

Hbase1.1:Hbase官网、Hbase定义、Habse结构、Hbase依赖框架、Hbase整合框架

这里写自定义目录标题Hbase官网Hbase特点&#xff1a;大Hbase定义Habse结构Hbase依赖框架hadoopHbase整合框架PhoenixHiveHbase官网 Hbase官网地址 HBase是Hadoop database&#xff0c;一个分布式、可扩展的大数据存储。 当您需要对大数据进行随机、实时读/写访问时&#xf…

记录网关zuul处理跨域/XSS问题

一&#xff0c;疑问 1.之前遇到跨域问题是在NG中解决的&#xff0c;添加跨域请求头和域名配置。那么与网关处理跨域问题关系是什么&#xff0c;NG处理了&#xff0c;为什么还需要在网关中处理 二&#xff0c;前置知识 zuul概念与原理 zuul 的概念和原理 - 知乎 Zuul工作原…

接触过的第一台电脑-90年代的x86与如今的树莓派

#勤写标兵挑战赛#最早接触电脑是在幼儿园&#xff0c;那时候电脑下象棋都要输入命令行的。后来小学时候有了电脑课&#xff0c;要穿鞋套的。满满的回忆。那个时代电子产品更新很慢的&#xff0c;一台电脑可以用5年&#xff0c;286-386-486-586。486电脑的特点是&#xff1a;处理…

python数据分析-matplotlib散点图-条形图的绘制以及完整方法归纳02

matplotlib的基本使用02一.散点图的绘制二.散点图绘图步骤及案例解析1.导入模块2.设置散点图所有字符的字体样式3.编写主体代码4.主题代码解析5.图形展示三.条形图的绘制四.条形图案例展示1.导入模块五.绘制条形图完整代码六.条形图展示七.多个条形图展示1.结果展示八.总结一.散…

工业交换机与商业交换机区别对比

摘要&#xff1a;工业交换机和商业交换机在功能方面差距较小&#xff0c;性能方面差别很大。最主要的差别是在对各类环境的适应性上&#xff0c;包括在温度、湿度、盐雾环境、振动环境、恶劣电磁干扰环境、海拔等各类环境下稳定可靠提供功能服务的能力。当然工业交换机在一些告…

Word控件Spire.Doc for .net 功能详解

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

继续Stable-Diffusion WEBUI方方面面研究(内容索引)

文章目录&#xff08;零&#xff09;前言&#xff08;一&#xff09;绘图&#xff08;1.1&#xff09;模型&#xff08;1.1.1&#xff09;基础模型&#xff08;Stable-diffusion模型&#xff09;&#xff08;1.1.2&#xff09;人物模型&#xff08;LoRA模型&#xff09;&#x…

4.4、网络模型

4.4、网络模型1.OSI七层参考模型2.TCP/IP四层模型①简介②四层介绍1.OSI七层参考模型 七层模型&#xff0c;亦称 OSI&#xff08;Open System Interconnection&#xff09;参考模型&#xff0c;即开放式系统互联。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一…

实验1 MATLAB环境与运算基础

实验一一、实验的目的与要求二、实验原理三、实验仪器四、实验内容与步骤五、实验分析与总结一、实验的目的与要求 1、掌握 MATLAB环境与基本操作&#xff1b; 2、掌握 MATLAB常见数据类型的创建、表示和引用&#xff1b; 3、熟悉 MATLAB数据类型的各种运算与常用函数&#xf…

一篇文章让你搞懂TypeScript中的typeof()、keyof()是什么意思

TypeScript中的typeof&#xff08;&#xff09;、keyof&#xff08;&#xff09;是什么意思&#xff1f;知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货&#x1f447;&#x1f447;&#x1f447;举例引入字面量类型&#xff08;literal types&…

AC7811电机驱动方案—电路分析

目录 电源树 12V转5V 输出电压设计 电感的选取 欠压锁定 电容的选取 PCB布局 5V转3.3V 输出噪声 外部反向电压保护 接口电路设计 USB转串口 JTAG 驱动电路 驱动桥电路 采样回路设计 电源树 12V转5V 使用了MPQ4420作为电压转换芯片。 芯片手册经典应用 输出电…

Kafka——概述、安装及命令行操作

文章目录一、概述1.1、定义1.2、如何运作&#xff1f;1.3、传统消息队列的应用场景1.4、消息队列的两种模式1.5、Kafka的基础架构二、安装&#xff08;需要安装zookeeper&#xff09;三、常用命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作一、概述…

Python操作MySQL就是这么简单

Python操作MySQL就是这么简单下载MySQL 8.0安装MySQL 8.0步骤2&#xff1a;选择安装类型步骤3&#xff1a;选择安装位置步骤4&#xff1a;配置MySQL 8.0步骤5&#xff1a;安装MySQL 8.0步骤6&#xff1a;完成安装启动MySQL 8.0MySQL 8.0的常用命令python的 pymysql库操作方法安…

【C++】哈希的应用 -- 位图

文章目录一、位图的引入二、位图的实现三、bitset四、位图的应用五、哈希切割一、位图的引入 我们通过一道面试题来引入位图&#xff1a; 给定40亿个不重复的无符号整数&#xff0c;且没排过序&#xff0c;现在给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数…

ChatGPT想干掉测试人员,做梦去吧

很多人都发现ChatGPT可以做一些代码相关的工作&#xff0c;不仅可以写一些测试用例和自动化脚本&#xff0c;还可以做一定量的调优&#xff0c;于是就开始担忧起来&#xff0c;到哪天我的测试工作会不会被ChatGPT这个工具给取代了&#xff1f; 1. ChatGPT目前对哪些东西会有冲击…