【Redis】主从复制(上)

文章目录

  • 1.主从复制的基本概念
    • 基本概念
    • 主从复制的作用
  • 2.在一个服务器上建立一个主从结构的redis集群
    • 建立主从关系
    • 断开主从关系
    • redis中重要配置
      • 安全性
      • 只读
      • 传输延迟
  • 3.主从关系--拓扑结构
    • 一主一从
    • 一主多从
    • 树形主从结构

1.主从复制的基本概念

基本概念

Redis 的主从复制(Master-Slave Replication)是一种数据复制机制,允许一个 Redis 服务器(主节点)将数据复制到一个或多个 Redis 服务器(从节点)。这种机制可以用于负载均衡数据备份

主从复制的作用

Redis 的主从复制机制主要解决了以下几个单点问题:

  1. 读写分离
    问题:在单一的 Redis 实例中,所有的读写请求都必须通过同一个节点,这可能导致性能瓶颈
    解决方案:通过设置多个从节点主节点负责处理写请求,而从节点可以处理读请求,从而分散负载,提高系统的并发处理能力。
    2.高可用性
    问题:如果只有一个 Redis 实例,一旦该实例出现故障,整个服务将不可用
    解决方案:主从复制允许数据在多个节点之间复制。如果主节点出现故障,可以通过其他机制(如 Redis Sentinel 或手动切换)将某个从节点提升为新的主节点(这里使用到了"哨兵机制",从而实现 高可用性
  2. 数据备份
    问题:单一节点的数据丢失风险较高,例如由于硬件故障或其他意外情况
    解决方案:从节点可以作为主节点数据的备份,定期同步数据,从而在主节点出现故障时,能够快速恢复数据。
  3. 负载均衡
    问题:单个 Redis 实例处理所有请求,可能导致响应时间变慢和系统性能下降
    解决方案:通过增加从节点,可以将读请求分散到多个从节点上,从而提高系统的整体性能和响应速度。
  4. 数据一致性
    问题:在分布式系统中,数据一致性是一个重要问题。
    解决方案:虽然主从复制是异步的,但它提供了一种机制来确保数据在多个节点之间的一致性。即使在某些情况下会有短暂的不一致,从节点会在后续同步中更新数据,最终达到一致性。

2.在一个服务器上建立一个主从结构的redis集群

建立主从关系

由于设备的限制,我们采用一台服务器上部署多个redis这样的方式来进行主从复制 的学习.配置复制的方式有以下三种:

  • 在配置文件中加入slaveof{masterHost} {masterPort},随redis启动生效
  • redis-server启动命令加入--slaveof {masterHost} {masterPort}生效
  • 直接使用redis命令slaveof {masterHost} {masterPost} 生效
    注意: 这里能够实现永久性的设置的只有修改配置文件这种方法,其他两种该方法都是临时性的修改
    这样,我们通过cp复制命令,建立了两个slave配置文件:
    在这里插入图片描述
    这里我们在配置文件的末尾进行主从关系的建立:
    在这里插入图片描述
    == 注意:由于我们使用的是同一个服务器,所以我们的端口不能一样,在配置文件中也需要对端口号进行修改 ,这里设置了两个从节点,分别占用6380和6381==
    在这里插入图片描述
    然后启动两个从节点的redis: redis-server /etc/redis/slave1.conf,redis-server /etc/redis/slave2.conf

通过ps aux | grep redis来观察是否已经正确启动:
在这里插入图片描述我们发现,此时除了我们默认的6379端口号启动了redis-server以外,6380和6381同时也启动了,此时代表在同一个服务器上启动多个redis-server启动成功

接下来我们验证主从结构关系:

  • 进入主节点命令行客户端进行redis交互过程:
    在 命令行中输入info replication查询主节点的状态信息
    在这里插入图片描述
  • 发现当前的身份rolemaster
  • 当前连接的从节点的数量为connected_slaves:2
  • 当前节点的相关信息:slave0slave1

同理,我们可以观察从节点(以6380端口的redis-server为例)中的相关状态信息:
在这里插入图片描述
这里的身份roleslove,同时也记录了相关的主节点的信息,说明主从关系建立成功

断开主从关系

slavof命令不但可以建立关系 ,还可以在从节点执行slaveof no one断开从节点与主节点之间的主从关系,使用6380节点进行举例:
在命令行客户端中输入slaveof no one命令:
在这里插入图片描述
出现ok返回值
接下来再来观察一下当前的复制状态:
在这里插入图片描述
我们发现此时的role身份从slave转变为master,说明此时的主从关系已经断开
在这里插入图片描述
断开复制的主要流程:

  • 断开与主节点的复制关系
  • 从节点晋升为主节点
  • 从节点断开复制之后并不会抛弃原有的数据,只是无法再获取主节点上的数据变化

redis中重要配置

安全性

对于数据比较重要的节点,主节点会通过设置requirepass参数来进行密码验证,这时所有的客户端访问必须使用auth命令实行校验.

只读

默认情况下,从节点使用slave-read-only=yes配置为只读模式.由于复制只能从从主节点到从节点,多于从节点的任何修改主节点都无法感知,修改从节点会造成主从数据不一致.所以建议:线上不要修改从节点的只读模式.

传输延迟

主从节点一般来说不会部署在同一个服务器上,那么在复制的过程中就会存在网络延迟的问题.Redis采用tcp进行传输,那么在tcp的传输机制中,nagle算法,用来解决网络带宽问题(开启nagle算法,主节点会合并较小的tcp数据包,会增加tcp传输的延迟,但节省了网络带宽;关闭nagle算法,主节点产生的命令数据无论大小都会及时的发送给从节点,这样主从之间的延迟就会变小,减少了tcp传输延迟,但是提高了网络带宽)
Redis提供了repl-disable-tcp-nodely参数用来控制是否关闭tcp_nodelay,默认为no,即开启nogle功能.

3.主从关系–拓扑结构

一主一从

一主一从结构式最简单的复制拓扑结构,用于主节点出现宕机时从节点提供故障转移支持.当应用写命令并发量较高且需要持久化时,可以只在从节点上开启AOF,这样保证数据安全性的同时,也避免了持久化对主节点性能的干扰.但是需要注意的是,当主节点关闭持久化功能时,如果主节点宕机要避免主节点的自动重启操作,因为如果主节点进行了重启操作,进而就会进行数据的同步,此时从节点中存储的主节点宕机前的数据会被覆盖掉
在这里插入图片描述

一主多从

一主多从结构是的应用端可以利用多个从节点实现读写分离,对于一些读比重比较大的场景,可以把读命令负载均衡到不同的从节点上来分担压力.同时一些耗时的读命令可以指定一台专门的从节点来执行,避免破坏整体的稳定性.对于写并发量较高的场景,多个从节点会导致主节点写命令的多次发送从而加重主节点的负载.
在这里插入图片描述

树形主从结构

树形主从结构(分层结构)使得从节点不但可以复制主节点的数据,同时可以作为其他从节点的主节点继续向下层复制.通过引入复制中间层,可以有效降低写操作对于主节点的负载压力,当主节点需要挂载多个从节点时为了避免对主节点的性能干扰,可以采用这种拓扑结构.
在这里插入图片描述

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

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

相关文章

AI驱动TDSQL-C Serverless 数据库技术实战营-融合智能体与TDSQL-C技术,高效实现二手房数据查询与分析应用

文章目录 什么是TDSQL-C技术创新算力服务器与数据库服务器申请与部署购买 TDSQL-C Mysql Serverless 实例购买HAI高算力服务器 准备工作准备数据下载依赖 案例研发创建数据库写入数据智能体与TDSQL-C 的结合应用第一步配置llama3.1第二步代码开发运行应用测试应用 总结 什么是T…

文献笔记 - Ground effect on rotorcraft unmanned aerial vehicles: a review

这篇博文是自己看文章顺手做的笔记 只是简单翻译和整理 仅做个人参考学习和分享 如果作者看到觉得内容不妥请联系我 我会及时处理 本人非文章作者,文献的引用格式如下,原文更有价值 摘要—— 收集和讨论小型多旋翼无人机受地面效应的影响,…

WEB攻防-JavaWweb项目JWT身份攻击组件安全访问控制

知识点: 1、JavaWeb常见安全及代码逻辑; 2、目录遍历&身份验证&逻辑&JWT; 3、访问控制&安全组件&越权&三方组件; 演示案例: JavaWeb-WebGoat8靶场搭建使用 安全问题-目录遍历&身份认…

第一个maven web工程(eclipse)

1、点击file--》new--》Maven Project,如下: 2、直接next,如下 3、搜索web原型,如下 4、填写项目的坐标,如下 5、创建完成后,需要自己补一个文件夹,名称为java,如下: …

C++进阶|多态知识点详解及经典面试题总结

🍬 mooridy-CSDN博客 🧁C专栏(更新中!) 目录 1. 多态的概念 2. 多态的定义及实现 2.1 多态的构成条件 2.2 虚函数的重写/覆盖 2.3 虚函数重写的⼀些其他问题 2.4 override 和 final关键字 2.5 重载/重写/隐藏的…

IDEA全局搜索快捷键ctrl+shift+f失效问题解决

目录 一、搜狗输入法 二、windows输入法 其实就是与输入法快捷键冲突了,一般用的最多的就是windows自带输入法和搜狗输入法,我们只需要把两个输入法的快捷键取消即可解决。 一、搜狗输入法 二、windows输入法 “设置”-“日期和时间”,选择…

Elasticsearch——介绍、安装与初步使用

目录 1.初识 Elasticsearch1.1.了解 ES1.1.1.Elasticsearch 的作用1.1.2.ELK技术栈1.1.3.Elasticsearch 和 Lucene1.1.4.为什么不是其他搜索技术?1.1.5.总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3.Elasticsearch 的一些概念1.3.1.文档和字…

【中级通信工程师】终端与业务(三):电信业务

【零基础3天通关中级通信工程师】 终端与业务(三):电信业务 本文是中级通信工程师考试《终端与业务》科目第三章《电信业务》的复习资料和真题汇总。终端与业务是通信考试里最简单的科目,有效复习通过率可达90%以上,本文结合了高频考点和近几…

SQL 性能调优

什么是 SQL 性能调优 SQL 性能调优是优化 SQL 查询以尽可能高效地运行的过程,从而减少数据库负载并提高整体系统性能。这是通过各种技术实现的,例如分析查询执行计划、优化索引和重写查询以确保最佳执行路径。目标是最大限度地减少执行查询所需的时间和…

Windows安装openssl开发库

1 下载openssl安装包并安装 下载网址: https://slproweb.com/products/Win32OpenSSL.html 下载对应的安装版本。 双击安装包,一路下一步完成安装。注意:1.安装路径不要有空格; 2. 建议不要把DLL拷贝到系统路径。 2 编辑代码 …

什么是Node.js?

为什么JavaScript可以在浏览器中被执行? 在浏览器中我们加载了一些待执行JS代码,这些字符串要当中一个代码去执行,是因为浏览器中有JavaScript的解析引擎,它的存在我们的代码才能被执行。 不同的浏览器使用不同的javaScript解析引…

数据结构之链表(1),单链表

目录 前言 一、什么是链表 二、链表的分类 三、单链表 四、单链表的实现 五、SList.c文件完整代码 六、使用演示 总结 前言 本文讲述了什么是链表,以及实现了完整的单链表。 ❤️感谢支持,点赞关注不迷路❤️ 一、什么是链表 1.概念 概念:链…

19、网络安全合规复盘

数据来源:5.网络安全合规复盘_哔哩哔哩_bilibili

精密制造的革新:光谱共焦传感器与工业视觉相机的融合

在现代精密制造领域,对微小尺寸、高精度产品的检测需求日益迫切。光谱共焦传感器凭借其非接触、高精度测量特性脱颖而出,而工业视觉相机则以其高分辨率、实时成像能力著称。两者的融合,不仅解决了传统检测方式在微米级别测量上的局限&#xf…

【C++】入门基础知识-1

🍬个人主页:Yanni.— 🌈数据结构:Data Structure.​​​​​​ 🎂C语言笔记:C Language Notes 🏀OJ题分享: Topic Sharing 目录 前言: C关键字 命名空间 命名空间介…

使用 Llama-index 实现的 Agentic RAG-Router Query Engine

前言 你是否也厌倦了我在博文中经常提到的老式 RAG(Retrieval Augmented Generation | 检索增强生成) 系统?反正我是对此感到厌倦了。但我们可以做一些有趣的事情,让它更上一层楼。接下来就跟我一起将 agents 概念引入传统的 RAG 工作流,重新…

凌晨1点开播!Meta Connect 2024开发者大会,聚焦Llama新场景和AR眼镜

作者:十九 编辑:李宝珠 北京时间 9 月 26 日凌晨 1 点,Meta Connect 2024 开发者大会即将举行,马克扎克伯格将聚焦 AI 和元宇宙,向大家分享 Llama 模型的更多潜在应用,并介绍 Meta 最新产品 AR 眼镜和 Meta…

OceanBase云数据库战略实施两年,受零售、支付、制造行业青睐

2022年OceanBase推出云数据库产品OB Cloud,正式启动云数据库战略。两年来OB Cloud发展情况如何,9月26日,OceanBase公有云事业部总经理尹博学向记者作了介绍。 尹博学表示,OB Cloud推出两年以来,已服务超过700家客户,客…

智算中心动环监控:构建高效、安全的数字基础设施@卓振思众

在当今快速发展的数字经济时代,智算中心作为人工智能和大数据技术的核心支撑设施,正日益成为各行业实现智能化转型的重要基石。为了确保这些高性能计算环境的安全与稳定,卓振思众动环监控应运而生,成为智算中心管理的重要组成部分…

理解Java引用数据类型(数组、String)传参机制的一个例子

目录 理解Java引用数据类型(数组、String)传参机制的一个例子理解样例代码输出 参考资料 理解Java引用数据类型(数组、String)传参机制的一个例子 理解 引用数据类型传递的是地址。用引用类型A给引用类型B赋值,相当于…