✅ 一、什么是 Redis 主从集群?

Redis 主从(Master-Slave)集群是一种最基础的集群方式:

一台 Redis 作为主节点(Master),负责写操作;
一到多台 Redis 作为从节点(Slave),负责读操作并实时同步主节点的数据。

🔁 数据同步方式:主同步数据给从(单向复制)


✅ 二、主从架构图(示意)

          写操作Client ------> Redis Master|自动复制|+------------+------------+|                         |Redis Slave 1             Redis Slave 2↑                         ↑读请求                    读请求
  • 所有数据写入都只进 Master

  • 从节点只接受数据同步和读请求,不能写入

  • 一般搭配读写分离使用,提高读性能


✅ 三、主从复制工作机制

1️⃣ 主从建立连接

使用命令:

slaveof <master_ip> <master_port>

一旦从节点执行这个命令,它会:

  • 向主节点发送 PSYNC(部分同步)请求

  • 如果是第一次连接,会触发全量同步(RDB)

2️⃣ 数据同步流程

  • 初次连接:从节点向主节点请求全量同步(传输 RDB 快照 + 后续 AOF 命令)

  • 增量同步:从节点定期获取主节点写操作的增量(命令流)并执行,保持一致性

3️⃣ 主节点断连后恢复

  • 从节点会尝试重连

  • 若主节点恢复上线,可以自动恢复同步


✅ 四、配置主从集群(手动方式)

1️⃣ 配置主节点(master)

redis-master.conf

port 6379
appendonly yes

2️⃣ 配置从节点(slave)

redis-slave.conf

port 6380
slaveof 127.0.0.1 6379  # 指定主节点地址

3️⃣ 启动服务

redis-server redis-master.conf
redis-server redis-slave.conf

✅ 五、主从集群的优点

优点说明
提高读取性能可以让从节点承担读取压力,实现读写分离
容灾能力主节点宕机时,数据仍存在从节点中
数据安全性增强多副本存储,降低数据丢失风险
部署简单比 Cluster 简单很多

✅ 六、主从集群的缺点

缺点说明
主节点是单点如果主节点宕机,系统不能写入,需要手动切换主从
无自动故障转移无法自动将从节点提升为主,需要人为干预或借助 Sentinel
数据一致性延迟从节点通过异步复制,主从间可能存在数据延迟
扩展能力有限所有数据仍在主节点上,不能分片(即不能无限扩展容量)

✅ 七、如何实现主从 + 高可用?

可以通过引入 Redis Sentinel(哨兵)机制 来解决主从架构的最大问题:主节点宕机时自动切换

Redis Sentinel 负责监控主节点状态,并在主节点故障时自动把某个从节点“升级”为新主节点。

结构就变成这样:

     +---------------------+|     Sentinel        |+---------+-----------+|+-------+--------+|                |Redis Master      <---- Sentinel 检测状态|+----+----+|         |
Slave 1   Slave 2   <-- 新主选举候选

✅ 八、主从适用场景

场景说明
读多写少系统例如:商品浏览、文章详情页缓存等
有容灾要求但数据量不大中小型业务系统
作为 Redis Cluster 的组成部分Redis Cluster 的每个主节点也可以有从节点

✅ 总结一句话:

Redis 主从集群是最基本的高可用架构,主节点负责写、从节点负责读和备份,但缺乏自动切换机制,推荐搭配 Sentinel 使用。

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

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

相关文章

【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间

【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间 写在最前面**为什么“token序列空间”有根本缺陷&#xff1f;****为什么“语义向量空间”能破局&#xff1f;****1. 连续性&#xff08;抗攻击的核心&#xff09;****2. 高维复杂性&#xff08;防破解…

Glide缓存机制

一、缓存层级与设计目标 双级缓存&#xff1a; 内存缓存&#xff1a;弱引用 LruCache 磁盘缓存&#xff1a;DiskLruCache 设计目标&#xff1a; 减少网络流量消耗 避免Bitmap频繁创建/销毁引发的GC 提升图片加载速度 二、内存缓存机制 1. 双缓存结构 缓存类型存储对象…

BaiduSitemap - Typecho站点地图生成与多搜索引擎推送插件

文章目录 🌐 BaiduSitemap - Typecho站点地图生成与多搜索引擎推送插件✨ 功能特点🧩 插件架构核心模块文件结构📦 安装方法方法一:手动安装方法二:Git克隆⚙️ 配置说明站点地图基本设置搜索引擎配置百度搜索引擎必应(Bing)搜索引擎谷歌(Google)搜索引擎🚀 使用…

androidx中<layout>根布局的意义及用法

在 Android 开发中,<layout> 根布局是 Android Jetpack Data Binding 库的核心组件,用于声明该 XML 布局文件将使用数据绑定功能。以下是详细说明: 📌 一、基本作用 1. 启用数据绑定 <layout> 标签标志着此布局文件支持数据绑定,编译器会为其生成对应的绑定类…

QTreeWidget 简单使用

效果图&#xff1a; 关键代码&#xff1a; void MainProj::_InitTree() { connect(m_pTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)), this, SLOT(TreeItemClicked(QTreeWidgetItem*, int))); m_pTreeWidget->header()->setHidden(1); /*QTreeWid…

手势-handpose的pipeline介绍

手势-handpose的pipeline包括&#xff1a; 1、手部检测算法&#xff1a;单帧检测出左右手的边界框。 2、手部跟踪算法&#xff1a;连续帧跟踪&#xff0c;锁定左右手跟踪目标&#xff0c;作为后续的手部ui操作。 3、手部关键点检测算法&#xff1a;基于单帧的检测框图像作为输…

计算机操作系统(十七)内存管理

计算机操作系统&#xff08;十七&#xff09;内存管理 前言一、内存的使用与程序重定位&#xff08;一&#xff09;内存是什么&#xff1f;&#xff08;二&#xff09;程序的重定位过程&#xff08;三&#xff09;总结&#xff1a;内存使用的核心问题 二、连续分区管理&#xf…

【编译原理】期末

单选题 (4分) 令文法G[E]为&#xff1a;E->ET | T T->T*F | F F-> (E) | i 句型 F*iT 的最左素短语是&#xff08; &#xff09; A.F B.i C.T D.F*i B 短语&#xff1a; F*iT、F*i、F、i 素短语&#xff1a; i 最左素短语&#xff1a; i 单选题 (4分) 若在…

一个简单测试Deepseek吞吐量的脚本,国内环境可跑

一个简单测试Deepseek吞吐量的脚本,这里用DeepSeek-R1-Distill-Qwen-32B ,支持单卡4090 24G可跑,具体看你的硬件情况做调整,理论支持所有的模型,看你需要,可以修改模型名称,重点是pip使用国内的源,模型下载用阿里的ModelScope,无障碍下载,使用. 最后可以生成一个txt与html报表.…

前端基础知识JavaScript系列 - 19(正则表达式)

一、是什么 正则表达式是一种用来匹配字符串的强有力的武器 它的设计思想是用一种描述性的语言定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;我们就认为它“匹配”了&#xff0c;否则&#xff0c;该字符串就是不合法的 在 JavaScript中&#xff0c;正则表达式也…

Java锁机制知识点

一、锁的基础概念 1.1 什么是锁 在并发编程中&#xff0c;锁是用于控制多个线程对共享资源进行访问的机制。锁可以保证在同一时刻最多只有一个线程访问共享资源&#xff0c;从而保证数据的一致性。 1.2 锁的分类 可重入锁 vs 不可重入锁&#xff1a;可重入锁允许同一个线程…

2025下半年软考软件设计师(中级)怎么高效备考,目标是稳过线!

25下半年软考开始进入备考阶段&#xff0c;现在咱们就抛开那些文绉绉的官话&#xff0c;用大白话来聊聊2025下半年软考软件设计师&#xff08;中级&#xff09;怎么高效备考&#xff0c;目标是稳过线&#xff01; 核心思想&#xff1a;抓大放小&#xff0c;真题为王&#xff0…

Jupyter常见操作(持续更新)

Jupyter常见操作&#xff08;持续更新&#xff09; 本文主要整理一些常见的或者比较简单的Jupyter操作&#xff0c;尽量保证一次性整理出来&#xff0c;方便需要但是忘记的情况下可以直接查&#xff0c;希望能当字典。 1.查看Jupyter内核 jupyter kernelspec list 2.使用指定…

连点成画面积计算算法

连点成画面积计算算法 问题分析与算法设计 1. 问题特征分析 闭合多边形(起点和终点相同)线段可能交叉形成复杂形状需要处理自交多边形可能有多个内部空洞点数较多(≥50个点),需要高效算法2. 解决方案选择 采用平面扫描算法结合多边形布尔运算来准确计算最外层边界包围的…

华为云Flexus+DeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例

华为云FlexusDeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发&#xff1a;多渠道融合应用案例 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不…

03.BUG

Bug 1.软件测试的生命周期2. BUG2.1 表述BUG的要素2.2 BUG级别2.3 BUG的声命周期 1.软件测试的生命周期 ​ 软件测试贯穿于软件的整个生命周期&#xff1a;软件测试的生命周期&#xff08;Software Testing Life Cycle, STLC&#xff09;,是指测试流程&#xff0c;这个流程是按…

【数据标注师】问答标注

目录 一、 **问答标注的认知底层架构**1. **三维评估体系**2. **四类问题处理范式** 二、 **五阶能力培养体系**▶ **阶段1&#xff1a;问题解析能力筑基&#xff08;2周&#xff09;**▶ **阶段2&#xff1a;答案质量评估训练**▶ **阶段3&#xff1a;复杂场景处理**▶ **阶段…

使用DBeaver 连接mysql,使用存储过程插入5万条数据

使用DBeaver连接MySQL并创建存储过程生成5万条数据 连接MySQL数据库 打开DBeaver&#xff0c;点击"数据库"菜单选择"新建连接"&#xff0c;选择MySQL驱动。填写主机、端口、数据库名称、用户名和密码等信息&#xff0c;测试连接成功后保存。 创建测试表…

某省赛题-windows内存取证

1.获取admin用户密码是多少&#xff1f; 这里我们使用hashdump之后用john爆破没有结果&#xff0c;然后使用lsadump出来了flag 2.获取ip和主机名是什么&#xff1f; 主机名&#xff1a; 看注册表 SAM&#xff1a;记录了所有的用户 SYSTEM&#xff1a;可以看主机名 SOFTWARE&a…

【软考高项论文】论信息系统项目的成本管理

摘要 在信息系统项目管理里&#xff0c;成本管理是极为关键的环节&#xff0c;直接影响项目的顺利开展与最终成败。本文结合项目管理实际情况&#xff0c;从项目成本基准的形成过程、项目S曲线的绘制以及成本控制的具体实施三个方面&#xff0c;详细阐述了对信息系统项目成本管…