Redis(七)复制

文章目录

    • 是什么
    • 功能
    • 配置
      • 配主库不配从库
      • 权限细节
    • 案例
      • 配置文件修改
    • 一主二仆
      • 固定配置文件
      • 主从问题
      • 命令操作手动指定
    • 薪火相传
    • 反客为主
    • 复制原理和工作流程
    • 存在问题

是什么

https://redis.io/docs/management/replication/

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

功能

  1. 读写分离
  2. 容灾恢复
  3. 数据备份
  4. 水平扩容支撑高并发

配置

配主库不配从库

权限细节

  1. master如果配置了requirepass参数,需要密码登陆
  2. 那么slave就要配置masterauth来设置校验密码,否则的话master会拒绝slave的访问请求

基本操作命令

# 可以查看复制节点的主从关系和配置信息
info replication
# 一般写入进redis.conf配置文件内
replicaof 主库IP 主库端口
# 每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件在运行期间修改slave节点的信息
# 如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步,重新拜码头
slaveof 主库IP 主库端口
# 使当前数据库停止与其他数据库的同步,转成主数据库,自立为王
slaveof no one

案例

配置文件修改

# 开启daemonize yes
# 注释掉bind 127.0.0.1 
# protected-mode no 
# 指定端口port 6379
# 指定当前工作目录,dir 
# pid文件名字,pidfile 
# log文件名字,logfile 
# 密码requirepass
# dump.rdb名字dbfilename
# aof文件,appendfilename 
# 从机访问主机的通行密码masterauth,必须 从机需要配置,主机不用

一主二仆

固定配置文件

# 配置文件执行
replicaof 主库IP 主库端口

在这里插入图片描述

  • 配从(库)不配主(库)
  • 先master后两台slave依次启动
  • 主从关系查看
  • info replication命令查看

主从问题

  1. 从机不可写入
    在这里插入图片描述
  2. 从机切入点
    首次一锅端,后续跟随,master写,slave跟
  3. 主机shutdown从机
    从机不动,原地待命,从机数据可以正常使用;等待主机重启动归来
  4. 主机shutdown,重启后主从关系依旧存在

命令操作手动指定

  • 预设的从机上执行命令 slaveof 主库IP 主库端口
  • 用命令使用的话,2台从机重启后,关系不再生效

配置持久有效
命令临时有效

薪火相传

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

中途变更转向:会清除之前的数据,重新建立拷贝最新的

slaveof 新主库IP 新主库端口

反客为主

SLAVEOF no one

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

复制原理和工作流程

  1. slave启动,同步申请:slave启动成功连接到master后会发送一个sync命令,slave首次全新连接mater,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖
  2. 首次连接,全量复制:master节点收到sync命令后会开始在后台保存快照(即RDB持久化,主从复制时会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化完后同时收集所有接收到的用master将rdb快照文件和所有缓存的命令发送到所有slave,以完成一次完全同步
  3. 心跳持续保持通信:repl-ping-replica-perid 10日
  4. 进入平稳,增量复制:Master继续将新的所有集到的修改命令自动依次传给slave,完成同步
  5. 从机下线,重连续传:master会检查backlog里面的offset,master和slave都会保存一个复制的offset还有一个masterId,offset是保存在backlog,Master只会把已经复制的offset后面的数据复制给Slave,类似断点续传

存在问题

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

挂了咋办

  1. 默认情况下,不会在slave节点中自动重选-个master
  2. 无人值守

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

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

相关文章

Ubuntu findfont: Font family ‘SimHei‘ not found.

matplotlib中文乱码显示 当我们遇到这样奇怪的问题时, 结果往往很搞笑 尝试1不行 Stopping Jupyter Installing font-manager: sudo apt install font-manager Cleaning the matplotlib cache directory: rm ~/.cache/matplotlib -fr Restarting Jupyter. 尝试2 This work fo…

Kafka-服务端-副本机制

Kafka从0.8版本开始引入副本(Replica)的机制,其目的是为了增加Kafka集群的高可用性。 Kafka实现副本机制之后,每个分区可以有多个副本,并且会从其副本集合(Assigned Replica,AR)中选出一个副本作为Leader副本,所有的读写请求都由…

Bluetooth Device Address(BD_ADDR) - 2

蓝牙核心规范:Core v5.3中关于蓝牙地址的其他说明 Vol 3: Host, Part C: Generic Access Profile 3 User interface aspects 3.2 Representation of Bluetooth parameters 3.2.1 Bluetooth Device Address (BD_ADDR) BD_ADDR 是蓝牙设备使用的地址。在设备发现过…

IPoE技术汇总

在国内并没有遇到这么多的IPoE(IP over Ethernet)技术,可能也是因为我来日本多年了,没有接触国内的IPv4 over IPv6的技术,感觉国内IPv4地址紧张,用的传统NAT和PPPoE非常多,大多数设备还是建立在…

使用 YApi 管理 API 文档,测试, mock

随着互联网的发展,API变的至关重要。根据统计,目前市面上有上千万的开发者,互联网项目超过10亿,保守统计涉及的 API 数量大约有 100 亿。这么大基数的API,只要解决某些共有的痛点,将会是非常有意义的事情。…

开发实战角度:distinct实现原理及具体优化总结

1.背景 Distinct是一种常用的操作,在所有数据库的SQl语言中都是一个非常重要的操作,在Hive中,Distinct去重原理是通过MapReduce来实现的,Distinct操作可以应用于单个列,亦可以应用于多个列。基本原理是将输入的数据集…

机器学习期末复习总结笔记(李航统计学习方法)

文章目录 模型复杂度高---过拟合分类与回归有监督、无监督、半监督正则化生成模型和判别模型感知机KNN朴素贝叶斯决策树SVMAdaboost聚类风险PCA深度学习范数计算梯度下降与随机梯度下降SGD线性回归逻辑回归最大熵模型适用性讨论 模型复杂度高—过拟合 是什么:当模型…

golang通过go-git下载gitlab源码

1 申请令牌 方法1:具体项目下申请: 方法2:全局申请 2 获取token 3 下载代码 package mainimport ("fmt""os""github.com/go-git/go-git/v5" )func main() {_, err : git.PlainClone("/tmp/foo",…

java web mvc-07-Vaadin 入门介绍

拓展阅读 Spring Web MVC-00-重学 mvc mvc-01-Model-View-Controller 概览 web mvc-03-JFinal web mvc-04-Apache Wicket web mvc-05-JSF JavaServer Faces web mvc-06-play framework intro web mvc-07-Vaadin web mvc-08-Grails 开源 The jdbc pool for java.(java …

MySQL函数—数值函数,随机数验证码生成

MySQL函数—日期函数 函数功能CEIL(x)向上取整FLOOR(x)向下取整MOD(x,y)返回x/y的模(取余)RAND()返回0-1的随机数ROUND(x,y)求参数x的四舍五入,保留y位小数 1、向上取整:CEIL。只要小数点后的数字大于0就取整。 select CEIL(1.2…

Qt解析含颜色的QString字符串显示到控件

1、需求 开发接收含颜色字符串显示到窗口,可解析字符串颜色配置窗口属性,且分割字符串显示。 mprintf(“xxxxxx”);打印的xxxxxx含有颜色配置。 2、实现方法 2.1、条件 选用Qt的PlainTextEdit控件显示字符串,配置为只读模式 …

pytestallure分析redis的数据并动态生成testCase报告

1.pytest.mark.parametrize pytest.mark.parametrize 是一个pytest的装饰器,它可以用于将参数传递给测试函数。使用 pytest.mark.parametrize 装饰器时,需要在装饰器中指定参数名称和参数值。对于多个参数,可以使用多个装饰器。 下面是一些…

数据链路层——笔记·续

使用集线器的星形拓扑 传统以太网传输媒体:粗同轴电缆 -> 细同轴电缆 -> 双绞线。 采用双绞线的以太网采用星形拓扑。 在星形的中心则增加了一种可靠性非常高的设备,叫做集线器 (hub)。 传统以太网使用同轴电缆,采用总线形拓扑结构&am…

嵌入式软件工程师面试题——2025校招社招通用(计算机网络篇)(二十八)

说明: 面试群,群号: 228447240面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但…

计算机网络 第3章(数据链路层)

系列文章目录 计算机网络 第1章(概述) 计算机网络 第2章(物理层) 计算机网络 第3章(数据链路层) 文章目录 系列文章目录1. 数据链路层概述1.1 概述1.2 三个重要问题 2. 封装成帧2.1 介绍2.2 透明传输2.3 总…

归一化是是什么意思,为什么要归一化

归一化 归一化是指将数据转换为标准尺度或相对比例的过程。在数据处理中,归一化的目标是使数据具有统一的尺度,以便更好地适应模型的训练和提高模型性能。归一化通常是通过线性变换将数据映射到一个特定的范围或分布。 为什么要进行归一化? …

RK3399平台开发系列讲解(USB篇)USB2.0 包格式分类

🚀返回专栏总目录 文章目录 一、令牌包格式二、数据包格式三、握手包格式沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 USB协议定了多种类型的包,有令牌包、数据包和握手包。 根据PID可将USB2.0的包分为四种包类型。 令牌包(Token):01B数据包(Data):11B握手包…

QT下载、安装详细教程[Qt5.15及Qt6在线安装,附带下载链接]

QT5.15及QT6的下载和安装 1.下载1.1官网下载1.2国内镜像网站下载 2.安装3.软件启动及测试程序运行3.1Qt Creator(Community) 1.下载 QT自Qt5.15版本后不在支持离线安装包下载(非商业版本,开源),故Qt5.15及Qt6需要使用在线安装程序…

云原生安全:风险挑战与安全架构设计策略

概述 数字化转型已经成为当今最流行的话题之一,大部分企业已经开启自身的数字化转型之旅,在未来企业只有数字化企业和非数字化企业之分。通过数字经济的加速发展,可以有效推动企业数字化转型的步伐。云计算作为数字化转型的底座和重要的载体…

Redis 面试题 | 07.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…