【Redis】复制(Replica)

文章目录

  • 一、复制是什么?
  • 二、 基本命令
  • 三、 配置(分为配置文件和命令配置)
    • 3.1 配置文件
    • 3.2 命令配置
    • 3.3 嵌套连接
    • 3.4 关闭从属关系
  • 四、 复制原理
  • 五、 缺点


以下是本篇文章正文内容

一、复制是什么?

主从复制

  • master(main redis)以写为主,slave(secondary redis)以读为主,不能写数据
  • 当master数据变化时,自动将新的数据异步同步到其他slave数据库

功能

  • 读写分离:主机只写,从机只读
  • down机恢复:主机down,从机数据可用,但仍是slave,等待主机恢复
  • 数据备份
  • 水平扩容支撑高并发

配slave不配master
权限细节

  • master如果配置了 requirepass 参数,需要密码登录
  • slave 需要配置 masterauth来设置检验密码,否则的话master会拒绝slave的访问请求

二、 基本命令

info replication  // 查看复制节点的主从关系和配置信息replicaof/slaveof  主库IP 主库端口   
// replicaof/slaveof这两个一样,一般写入进redis.conf配置文件内,但是政治原因redis 5版本后一般用replicaof
// 在运行期间修改slave节点的信息,如果该数据库已经是某个数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步replicaof/slaveof  no one     // 使当前数据库停止与其他数据库的同步,升级为主数据库

三、 配置(分为配置文件和命令配置)

3.1 配置文件

master 主机中的conf文件需要配置:

  1. 开启daemonize yes
  2. 注释掉bind 127.0.0.1
  3. protected-mode no
  4. 指定redis运行端口 port 6379
  5. 指定当前工作目录,dir 工作路径(有redis.config文件的路径)
  6. pid文件名字,可以默认 pidfile
  7. log文件名字 logfile
  8. 连接密码 requirepass
  9. dump.rdb名字 dbfilename
  10. AOF设置,可选不开启,appendonly yes ; appendfilename

slave 从机redis.conf中需要配置 从机配置上主机的ip、端口 replicaof、密码 masterauth

注意防火墙配置,无法连接时可能需要关闭防火墙

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld添加 :firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入: firewall-cmd --reload
查看: firewall-cmd --zone= public --query-port=80/tcp
删除: firewall-cmd --zone= public --remove-port=80/tcp --permanent

查看日志信息是否连接成功
master主机日志:
在这里插入图片描述
通过日志可以查看连接状态,日志保存目录在配置文件中logfile 查看。

3.2 命令配置

命令配置是一次性,当重启后就不再生效。
在需要配置为从机的redis中运行:

replicaof  主库IP 主库端口   # 如果用redis 5.0之前版本,使用:  slaveof 主库IP 主库端口 
masterauth xxxx           # 如果主节点需要密码认证,则需要加上这行。主节点密码为:xxxx。

配置VS命令的区别

  • 配置,持久稳定
  • 命令,当次生效

3.3 嵌套连接

上一个slave可以是下一个slave的master,slave同样可以接收其他slaves的连接和同步请求,那么该slave作为了链条中下一个的master。

  • 可以有效减轻主master的写压力
  • 中途变更主从关系时:会清除之前的数据,重新建立拷贝最新的
  • 中间的master不具备写能力
replicaof 新主库IP 新主库端口

在这里插入图片描述

3.4 关闭从属关系

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

关闭后,数据还在从redis中

四、 复制原理

slave启动,同步初请

  • slave启动成功连接到master后会发送一个sync命令
  • slave首次全新连接master,一次完全同步(全量复制)将被自动执行,slave自身原有数据会被master数据覆盖清除

首次连接,全量复制

  • master节点收到sync命令后会在后台开始保存快照(即RDB持久化,主从复制会触发RDB),同时收集所有接收到的用于修改数据集命令缓存起来,master节点执行RDB持久化后,master将rdb快照文件和缓存的命令发送到所有slave,用以完成一次完全同步
  • 而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中,从而完成复制初始化

心跳持续,保持通信

  • repl-ping-replica-period 10
    • master发出PING包的周期,默认是10秒

进入平稳,增量复制

  • master 继续将新的所有收集到的修改命令自动一次传给slave,完成同步

从机下线,重连续传

  • master 会检查backlog里面的offset,master和slave都会保存一个复制的offset,里面有一个masterId
  • offset 是保存在backlog 中的。master只会把已经复制的offset后面的数据赋值给slave,类似断点续传

五、 缺点

复制延时,信号衰减

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

master主机down后,会一直搁置等待主机恢复,默认情况下不会在slave节点自动重选一个master,需要人工干预。

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

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

相关文章

GloVe: Global Vectors for Word Representation论文笔记解读

基本信息 作者Jeffrey Penningtondoi10.3115/v1/D14-1162发表时间2014期刊EMNLP网址https://aclanthology.org/D14-1162.pdf 研究背景 1. What’s known 既往研究已证实 全局矩阵分解方法:LSA,考虑整个语料库词频的统计信息得到共现矩阵,通…

根据视图矩阵, 恢复相机的世界空间的位置

根据视图矩阵, 恢复相机的世界空间的位置 一、方法1 glsl 实现: // 从本地局部坐标系(相机空间) 到 世界空间的旋转变换 mat3 getLocal2WorldRotation() {mat3 world2localRotation mat3(viewMatrix[0].xyz,viewMatrix[1].xyz,viewMatrix[2].xyz);return inverse(world2loca…

C++ 项目实践课设 图书馆管理系统

一、项目介绍 (1)图书管理 (a)添加图书:在系统中增加图书信息(可自己设计图书的信息:如书号,书名,出版社,等等) (b)查询图书 (c)编辑图书 (d)删除图书 (2&a…

十个必须知道的物流术语(一)

我们日常生活中的每一个包裹,都承载着物流人的辛勤与智慧。 以下物流领域中的专业术语,常常在企业的物流管理中发挥着关键作用。 关于物流的基本概念 01 物流成本 产品在实物运动过程中,如包装、搬运装卸、运输、储存、流通加工等各个活动…

汽车零配件行业看板管理系统应用

生产制造已经走向了精益生产,计算时效产出、物料周转时间等问题,成为每一个制造企业要面临的问题,工厂更需要加快自动化,信息化,数字化的布局和应用。 之前的文章多次讲解了企业MES管理系统,本篇文章就为大…

论文er们,YOLO这口饭得趁热吃

不知道各位有没有看出来,从去年开始YOLO相关的论文就处于一个井喷式状态,SCI各区都能见到它的身影。 这是因为YOLO其实是个很好发论文的方向,需求量很大,热度高,并且好入门,能获取的资源也很多。写论文时一…

JWT (JSON Web Token) 立即失效

使一个 JWT (JSON Web Token) 立即失效可以通过多种方式实现,取决于具体的实现和系统需求。以下是几种常见的方法: 方法一:黑名单机制 适用场景: 需要在特定情况下立即使某个 JWT 失效。 可以接受额外的存储和查询开销。 实现方…

宾馆酒店电视信号高清改造-广电信号接入数字电视同轴高清传输系统应用

宾馆酒店电视信号高清改造-广电信号接入数字电视同轴高清传输系统应用 由北京海特伟业科技有限公司任洪卓发布于2024年7月12日 一、宾馆酒店广电信号接入数字电视同轴高清传输系统建设背景 在当今数字化快速发展的时代,宾馆酒店作为服务行业的重要组成部分&#x…

idea修改全局配置、idea中用aliyun的脚手架,解决配置文件中文乱码

idea修改全局配置 idea中用aliyun的脚手架,创建springBoot项目 解决配置文件中文乱码

解决fidder小黑怪倒出JMeter文件缺失域名、请求头

解决fidder小黑怪倒出JMeter文件缺失域名、请求头 1、目录结构: 2、代码 coding:utf-8 Software:PyCharm Time:2024/7/10 14:02 Author:Dr.zxyimport zipfile import os import xml.etree.ElementTree as ET import re#定义信息头 headers_to_extract [Host, Conn…

内网安全:权限维持的各种姿势

1.Linux权限维持 2.Windows权限维持 目录: 一.Linux权限维持: 1.webshell: 2.定时任务: 3.SUID后门: 4.SSH Key免密登录后门: 5.添加用户后门: 二.Windows权限维持 1.计划任务后门&…

在 Java 中:为什么不能在 static 环境中访问非 static 变量?

在 Java 中:为什么不能在 static 环境中访问非 static 变量? 1、静态(static)变量2、非静态(非static)变量3、为什么不能访问?4、如何访问?5、总结 💖The Begin&#x1f…

2024年用于在 Python 中构建 API 的 8 个开源框架

什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…

安装WindowsTerminal并设置默认以管理员身份运行启动终端

安装WindowsTerminal并设置默认以管理员身份运行启动终端 背景:Microsoft Store打不开,且WindowsTerminal没有默认以管理员身份运行。 下载msixbundle类型的安装包:https://github.com/microsoft/terminal/releases 使用管理员运行Windows …

[RK3308H_Linux] 关于8+2(8路模拟麦克风 + 2路es7243e回采)的调试心得

问题描述 RK3308H 使用8路个模拟麦克风录音,2路用es7243e做回采 解决方案: 首先先调8路模拟麦克风,根据原理图确定使用的是哪路I2S。 以下为dts配置,acodec的属性注释附上。 &acodec {status "okay";rockchip,m…

springBoot(若依)集成camunda

1、下图为项目结构 2、最外层 pom引入依赖 <properties><!--camunda 标明版本&#xff0c;注意要个自己的Spring 版本匹配&#xff0c;匹配关系自行查询官网--><camunda.version>7.18.0</camunda.version> </properties> 3、common模块引入依赖 …

retrofit实现原理

Retrofit 是一个用于 Java 和 Kotlin 的类型安全的 HTTP 客户端&#xff0c;它将 RESTful API 的抽象转换为 Java 接口&#xff0c;使得网络请求变得更加简洁和可读。Retrofit 的实现主要依赖于注解处理器和动态代理机制。下面结合源码分析 Retrofit 的实现原理&#xff1a; R…

靖江美食元宇宙

汉堡是一种流行于世界各地的快餐食品&#xff0c;它的主要成分通常包括一个或多个肉饼&#xff08;最常见的是牛肉饼&#xff09;&#xff0c;放在圆形的面包中间&#xff0c;周围可以添加各种配料和调味品&#xff0c;如生菜、番茄、洋葱、酸黄瓜、奶酪以及各种酱汁&#xff0…

Python 开发植物大战僵尸杂交版辅助【全网最详细_查找 + 代码编写一体化零基础也能学会】

目录 辅助最终展示效果 一、文章介绍 二、工具介绍 三、基址搜索 3.1、寻找阳光基址 3.2、寻找卡槽冷却基址 3.3、寻找僵尸刷新时间基址 3.4、寻找大阳光刷新时间基址 3.5、寻找植物编号基址 3.6、寻找场上僵尸数量基址 3.7、寻找僵尸 X 坐标基址 3.8、通过找到的僵…

编制,傻傻分不清?

目录 01.什么是聘用合同? 02.事业单位如何取得编制 03.如何快速判断岗位否有编制? 1.看公告直接告知 2.看是否有权威依据 3.看合同期限与试用期期限 4.看岗位表 5.咨询招考单位 04.事业单位改革备案制编制(员额制) 05.事业编制 与备案制(员额制)的区别? 1.二…