Redis三种服务架构
目录一.环境准备二.搭建Redis 主从复制2.1Redis安装 部署2.2Master节点配置2.3Slave节点配置2.4验证主从效果三、Redis哨兵模式3.1配置哨兵模式所有节点操作3.2启动哨兵模式3.3查看哨兵信息3.4故障模拟测试四.Redis 群集模式4.1创建集群配置文件每台机器两个实例4.2在另外两台机器上重复步骤34.3启动所有Redis实例三台机器4.4组建集群在一台机器上执行即可4.5验证集群状态4.6测试数据写入五.故障测试六.redis说明6.1 为什么选择该架构①业务需求分析②架构选型对比③选择本方案的核心原因6.2拓扑关系简图6.3节点角色说明七.总结1. 环境准备与主从复制2. 哨兵模式实现高可用3. Redis Cluster 集群部署4. 架构优势与特点5. 关键注意事项一.环境准备Master节点192.168.10.110Slave1节点192.168.10.111Slave2节点192.168.10.112系统配置systemctl stop firewalld setenforce 0二.搭建Redis 主从复制2.1Redis安装 部署# 安装依赖 yum install -y gcc gcc-c make 解压安装包 tar zxvf redis-5.0.7.tar.gz -C /opt/ 编译安装 cd /opt/redis-5.0.7/ make make PREFIX/usr/local/redis install 执行安装脚本 cd /opt/redis-5.0.7/utils ./install_server.sh 注意当提示选择redis可执行文件路径时指定为/usr/local/redis/bin/redis-server 创建软链接 ln -s /usr/local/redis/bin/* /usr/local/bin/2.2Master节点配置vim /etc/redis/6379.conf 需要修改的配置项 bind 0.0.0.0 # 70行修改监听地址为0.0.0.0 daemonize yes # 137行开启守护进程 logfile /var/log/redis_6379.log # 172行指定日志文件目录 dir /var/lib/redis/6379 # 264行指定工作目录 appendonly yes # 700行开启AOF持久化功能 重启服务 /etc/init.d/redis_6379 restart2.3Slave节点配置vim /etc/redis/6379.conf 需要修改的配置项 bind 0.0.0.0 # 70行修改监听地址为0.0.0.0 daemonize yes # 137行开启守护进程 logfile /var/log/redis_6379.log # 172行指定日志文件目录 dir /var/lib/redis/6379 # 264行指定工作目录 replicaof 192.168.10.110 6379 # 288行指定要同步的Master节点IP和端口 appendonly yes # 700行开启AOF持久化功能 重启服务 /etc/init.d/redis_6379 restart2.4验证主从效果在Master节点查看日志tail -f /var/log/redis_6379.log # 应看到类似以下内容 # Replica 192.168.10.120:6379 asks for synchronization # Replica 192.168.10.123:6379 asks for synchronization在Master节点验证从节点状态redis-cli info replication 输出示例 Replication role:master connected_slaves:2 slave0:ip192.168.10.120,port6379,stateonline,offset1246,lag0 slave1:ip192.168.10.123,port6379,stateonline,offset1246,lag1在Master节点插入一条数据验证结果# 在Master节点插入一条数据 set master 192.168.10.110 # 在slave节点查看数据 get master三、Redis哨兵模式3.1配置哨兵模式所有节点操作vim /opt/redis-5.0.7/sentinel.conf 需要修改的配置项 protected-mode no # 17行关闭保护模式 port 26379 # 21行Redis哨兵默认的监听端口 daemonize yes # 26行指定sentinel为后台启动 logfile /var/log/sentinel.log # 36行指定日志存放路径 dir /var/lib/redis/6379 # 65行指定数据库存放路径 sentinel monitor mymaster 192.168.10.110 6379 2 # 84行指定监控的主节点该主节点的名称是mymaster最后的2的含义与主节点的故障判定有关至少需要2个哨兵节点同意才能判定主节点故障并进行故障转移 sentinel down-after-milliseconds mymaster 30000 # 113行判定服务器down掉的时间周期默认30000毫秒30秒 sentinel failover-timeout mymaster 180000 # 146行故障节点的最大超时时间180秒3.2启动哨兵模式注意先启动master再启动slavecd /opt/redis-5.0.7/ redis-sentinel sentinel.conf 3.3查看哨兵信息redis-cli -p 26379 info Sentinel 输出示例 Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:namemymaster,statusok,address192.168.10.110:6379,slaves2,sentinels33.4故障模拟测试# 查看redis-server进程号 ps -ef | grep redis 杀死Master节点上redis-server的进程 kill -9 $(cat /var/run/redis_6379.pid) 查看哨兵日志观察故障转移过程 tail -f /var/log/sentinel.log 验证master是否被切换 redis-cli -p 26379 INFO Sentinel四.Redis 群集模式4.1创建集群配置文件每台机器两个实例以192.168.10.110为例创建两个配置文件主节点 6379mkdir -p /etc/redis/cluster/6379 /etc/redis/cluster/6380 cp /opt/redis-5.0.7/redis.conf /etc/redis/cluster/6379/redis.conf cp /opt/redis-5.0.7/redis.conf /etc/redis/cluster/6380/redis.conf修改 6379 配置主节点vim /etc/redis/cluster/6379/redis.conf修改以下内容bind 0.0.0.0 protected-mode no port 6379 daemonize yes cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 15000 appendonly yes修改 6380 配置从节点vim /etc/redis/cluster/6380/redis.conf修改以下内容bind 0.0.0.0 protected-mode no port 6380 daemonize yes cluster-enabled yes cluster-config-file nodes-6380.conf cluster-node-timeout 15000 appendonly yes4.2在另外两台机器上重复步骤3192.168.10.111同样创建 6379主、6380从192.168.10.112同样创建 6379主、6380从4.3启动所有Redis实例三台机器redis-server /etc/redis/cluster/6379/redis.conf redis-server /etc/redis/cluster/6380/redis.conf检查进程ps -ef | grep redis4.4组建集群在一台机器上执行即可在192.168.10.110上执行redis-cli --cluster create \ 192.168.10.110:6379 \ 192.168.10.111:6379 \ 192.168.10.112:6379 \ 192.168.10.111:6380 \ 192.168.10.112:6380 \ 192.168.10.110:6380 \ --cluster-replicas 1⚠️注意顺序前三个是主节点110:6379, 111:6379, 112:6379后三个是从节点111:6380, 112:6380, 110:6380这样分配后110:6379 的从节点是 111:6380不是本机 ✅111:6379 的从节点是 112:6380不是本机 ✅112:6379 的从节点是 110:6380不是本机 ✅执行后会提示分配哈希槽输入yes确认。4.5验证集群状态redis-cli -h 192.168.10.110 -p 6379 cluster nodes或查看详细信息redis-cli -h 192.168.10.110 -p 6379 cluster info查看主从关系redis-cli -h 192.168.10.110 -p 6379 info replication4.6测试数据写入redis-cli -h 192.168.10.110 -p 6379 -c set name zhangsan redis-cli -h 192.168.10.110 -p 6379 -c get name五.故障测试测试场景主节点宕机模拟 M1 故障# 在主机A192.168.10.110上停止主节点 M1 ps -ef | grep redis | grep 6379 kill -9 M1进程PID日志记录# 从节点 S1192.168.10.111:6380日志 23062:x 08 Aug 2026 10:15:30.123 # sdown master mymaster 192.168.10.110 6379 23062:x 08 Aug 2026 10:15:35.456 # new-epoch 1 23062:x 08 Aug 2026 10:15:35.457 # vote-for-leader 0fef2cc38d8db8cc... 1 23062:x 08 Aug 2026 10:15:38.789 # switch-master mymaster 192.168.10.110 6379 192.168.10.111 6380 23062:x 08 Aug 2026 10:15:38.790 * slave slave 192.168.10.112:6380 192.168.10.112 6380 mymaster 192.168.10.111 6380 23062:x 08 Aug 2026 10:15:38.790 * slave slave 192.168.10.110:6379 192.168.10.110 6379 mymaster 192.168.10.111 6380故障转移后集群状态redis-cli -h 192.168.10.111 -p 6380 cluster nodes查看新的主节点# 通过任意可用节点查看集群状态 redis-cli -h 192.168.10.111 -p 6379 cluster nodes# 在111机器上执行 redis-cli -h 192.168.10.111 -p 6380 info replication六.redis说明6.1 为什么选择该架构①业务需求分析需求说明高可用性任意一台机器宕机数据不丢失服务不中断读写分离主节点负责写从节点可分担读压力水平扩展未来可动态增加节点突破单机内存限制数据安全每个主节点都有跨主机的从节点备份②架构选型对比对比项主从复制哨兵模式Cluster集群本方案自动故障转移❌✅✅写负载均衡❌❌✅数据分片存储水平扩展❌❌✅16384槽分片跨主机数据冗余✅✅✅从节点不跟主同机可配置可配置✅本方案实现运维复杂度低中中高③选择本方案的核心原因数据分片突破单机内存瓶颈3个主节点分担数据存储总容量是单机的3倍跨主机高可用每个主节点的从节点都在其他机器上单机宕机不影响整体服务读写性能提升3主3从读操作可由从节点分担提升并发能力自动故障转移主节点宕机后哨兵机制自动选举从节点升级为主节点满足「主从不同机」的容灾要求物理隔离避免单点故障导致数据全部丢失6.2拓扑关系简图6.3节点角色说明节点标识IP地址端口角色负责哈希槽范围所属物理机M1192.168.10.1106379主节点0 – 5460主机AS3192.168.10.1106380从节点复制M3主机AM2192.168.10.1116379主节点5461 – 10922主机BS1192.168.10.1116380从节点复制 M1主机BM3192.168.10.1126379主节点10923 – 16383主机CS2192.168.10.1126380从节点复制 M2主机C七.总结本文详细介绍了 Redis 高可用集群的完整搭建过程涵盖了从基础环境准备到三种核心架构模式的实践操作1. 环境准备与主从复制完成了三台服务器192.168.10.110/111/112的基础环境配置成功搭建了 Redis 主从复制架构实现了数据同步和读写分离通过日志监控和命令验证确保了主从同步的正常运行2. 哨兵模式实现高可用配置并启动了 Redis Sentinel 哨兵集群实现了主节点故障时的自动故障转移通过故障模拟测试验证了哨兵模式的可靠性3. Redis Cluster 集群部署在三台机器上分别部署了主从实例每台机器 6379 主 6380 从成功组建了 3 主 3 从的 Redis 集群实现了数据分片存储突破了单机内存限制验证了集群状态和数据读写功能4. 架构优势与特点高可用性任意节点故障不影响整体服务数据安全跨主机备份避免单点故障导致数据丢失性能扩展读写分离 数据分片支持水平扩展自动运维哨兵机制实现自动故障检测和转移5. 关键注意事项集群组建时注意节点顺序确保主从节点分布在不同的物理机上哨兵配置中的 quorum 参数需要根据实际节点数量合理设置故障转移后需要验证新的主从关系和数据一致性生产环境建议配置监控告警及时发现和处理异常通过本文的实践读者可以掌握 Redis 从单机部署到高可用集群的完整技术栈为生产环境中的 Redis 应用提供可靠的技术保障。这套架构方案既满足了数据安全和高可用的需求又具备了良好的扩展性是构建大规模 Redis 应用的理想选择。

相关新闻

【信息科学与工程学】【通信工程】第一百五十八篇 通信-感知-计算-监控一体化网络控制系统中的算法

【信息科学与工程学】【通信工程】第一百五十八篇 通信-感知-计算-监控一体化网络控制系统中的算法

编号 1: 多径信道参数估计与目标定位函数 字段 内容 编号​ 1 类型​ 函数 领域​ 通信-感知融合 (多5G-A/6G基站射频感知) 模块​ 信道状态信息(CSI)预处理与到达角(AoA)/飞行时间(ToF)联合估计 依赖软件环境​ 编译器: GCC 12.2.0 (x86_64-linux-gnu) 操作系统: U…

2026/10/18 19:25:10 阅读更多 →
Claude 4.8迁移实战:Token成本管控与工程预算联动指南

Claude 4.8迁移实战:Token成本管控与工程预算联动指南

1. 从“能用”到“敢用”:Claude 4.8迁移背后的成本焦虑 最近身边不少团队都在讨论从Claude 3系列模型升级到Claude 4.8,新模型在代码生成、长上下文理解和复杂推理上的提升确实让人心动。但每次技术升级的讨论,最后总会落到一个现实问题上&a…

2026/10/17 22:26:57 阅读更多 →
中间件解析漏洞与编辑器漏洞:Web安全绕过的“捷径”

中间件解析漏洞与编辑器漏洞:Web安全绕过的“捷径”

文件上传漏洞的利用,往往不止于绕过前端的JS校验或服务端的MIME检查。当文件成功上传后,攻击者还需要让服务器“心甘情愿”地将图片马当作脚本执行——这时,中间件解析漏洞和编辑器历史漏洞就成了最常用的“捷径”。本文将系统梳理Apache、Ng…

2026/10/17 0:16:10 阅读更多 →

最新新闻

BrowserSkill:基于Chrome DevTools Protocol的轻量级浏览器CLI自动化工具

BrowserSkill:基于Chrome DevTools Protocol的轻量级浏览器CLI自动化工具

1. 项目概述:BrowserSkill不是插件,而是一套浏览器自动化能力的CLI封装体系BrowserSkill这个词最近在开发者社区里频繁出现,但它既不是Chrome商店里某个新上架的视频下载插件,也不是Edge浏览器内置的Copilot功能升级包。我第一次在…

2026/10/18 19:24:21 阅读更多 →
新能源汽车数据集源码解析:从标注转换到训练落地全攻略

新能源汽车数据集源码解析:从标注转换到训练落地全攻略

简介:面向人工智能与新能源交叉领域研究者的数据索引型源码包,围绕新能源汽车健康度、充电站运营、充电桩布设、充电需求时空、电池异常检测、公交驾驶、车牌识别等八个细分方向,整理并说明了各数据集的数据背景、应用领域、目录结构及用途&a…

2026/10/18 19:24:21 阅读更多 →
充电桩平台源码解析:国标协议解耦与高并发状态同步

充电桩平台源码解析:国标协议解耦与高并发状态同步

简介:这是一套面向Java开发者与新能源智能充电系统学习者的完整充电桩平台源码资源,聚焦于云快充协议对接、多租户运营及分时计费等核心业务场景,助力快速构建可商用的充电管理SaaS系统。资源包共13个文件,含10个Java核心类&#…

2026/10/18 19:24:21 阅读更多 →
Agent Skills实战:从工具调用到技能化智能体开发指南

Agent Skills实战:从工具调用到技能化智能体开发指南

做AI应用这两年,我踩过一个很大的坑:给大模型接了一堆工具,结果它真正跑起来的时候,反而不知道什么时候该用哪一个,经常在无关的工具之间来回横跳。后来我把整套交互方式改成了Agent Skills——把每一个工具变成一份带…

2026/10/18 19:24:21 阅读更多 →
Octop:Python依赖治理CLI工具,解决包名漂移与环境不可复现问题

Octop:Python依赖治理CLI工具,解决包名漂移与环境不可复现问题

1. 项目概述:Octop 是什么?它解决的不是“安装 Python”这个表层问题Octop 这个名字乍看像某个开源工具、库名,甚至有人会联想到章鱼(octopus)——毕竟“octo-”前缀在技术圈里常暗示“八路”“多线程”“分布式”或“…

2026/10/18 19:24:21 阅读更多 →
从需求拆解到部署:基于深度学习的口罩识别系统实战

从需求拆解到部署:基于深度学习的口罩识别系统实战

口罩识别这种项目,这几年几乎成了目标检测入门的标准练手题。但说实话,真正把它做成一个能稳定跑的落地系统,和跑通一个开源notebook之间的差距,比很多人想象得大得多。这篇文章就从我实际做完一个基于深度学习的口罩识别系统出发…

2026/10/18 19:23:20 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →