主从架构部署:如何搭建 Redis 主从复制及哨兵集群

千涛大大_8272

千涛大大_8272

2026-06-24

537人浏览

原创

redis主从复制+哨兵集群实现高可用:主节点写、从节点读,哨兵自动故障转移;需配置一致、网络通畅、客户端动态发现主节点,并通过压测验证闭环可靠性。

主从架构部署:如何搭建 redis 主从复制及哨兵集群

Redis 主从复制 + 哨兵(Sentinel)集群是保障高可用的经典方案:主节点处理写请求,从节点同步数据并分担读流量;哨兵负责自动发现故障、选举新主、通知客户端切换。关键不在于组件数量,而在于配置一致性、网络连通性与故障响应逻辑是否闭环。

一、主从复制:基础数据同步机制

主从复制是哨兵工作的前提。需确保从节点能稳定连接主节点并拉取 RDB 快照或增量 AOF 日志。

  • 在从节点 redis.conf 中配置 slaveof (Redis 5.0+ 推荐用 replicaof)
  • 主节点无需额外配置,但建议开启 requirepass 并在从节点配置 masterauth(若主启用了密码)
  • 避免跨网段直连:主从间需开放 TCP 6379(或自定义端口),且防火墙允许双向通信
  • 验证是否成功:在从节点执行 INFO replication,查看 role 是否为 slave,master_link_status 是否为 up

二、哨兵集群:三节点起步,独立部署

哨兵不共享 Redis 数据,它只监控、决策、通知。至少部署 3 个哨兵实例(奇数个),避免脑裂导致误判。

Redis Skill - 高性能缓存管理
Redis Skill - 高性能缓存管理

Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。

下载
  • 每个哨兵使用独立配置文件(如 sentinel.conf),核心配置包括:
    port 26379
    sentinel monitor mymaster 2(quorum=2 表示需 2 个哨兵同意才触发故障转移)
    sentinel auth-pass mymaster (若主节点有密码)
    sentinel down-after-milliseconds mymaster 5000(5 秒未响应判定为主观下线)
  • 哨兵进程启动命令:redis-sentinel /path/to/sentinel.conf,不要用 redis-server
  • 哨兵之间会自动发现并组成集群,可通过 SENTINEL sentinels mymaster 查看其他哨兵状态

三、客户端适配:不能直连 IP,必须用哨兵发现主节点

客户端不能硬编码主节点地址。需通过哨兵获取当前主节点动态地址,否则故障转移后仍连旧地址导致写失败。

  • Jedis 示例:new JedisSentinelPool("mymaster", sentinelSet),传入哨兵地址列表,内部自动订阅 + 切换
  • StackExchange.Redis(.NET):ConfigurationOptions.Sentinels + ServiceName = "mymaster"
  • Python redis-py:StrictRedis.from_url("sentinel://...") 或使用 Sentinel 类初始化后调用 get_master_connection()
  • 所有客户端需支持重试和连接重建——哨兵切换主从通常 10–30 秒,期间写操作可能短暂失败

四、常见问题排查要点

多数故障源于配置错位或网络隔离,而非哨兵逻辑本身。

  • 哨兵无法切换主节点? 检查 quorum 是否大于等于正常哨兵数的一半;确认从节点 slave-read-only yes(默认)且未被手动写入导致复制偏移异常
  • 客户端仍连旧主? 客户端未启用哨兵模式,或缓存了旧 master 地址(检查是否关闭了 DNS 缓存或连接池预热)
  • 主从延迟高? 查看 INFO replication 中 master_repl_offset 与 slave_repl_offset 差值;可能是网络带宽不足、从节点磁盘 I/O 慢,或主节点写入压力过大
  • 哨兵日志报 “+sdown” 但没 “+odown”? 说明仅单个哨兵认为主下线,未达到 quorum,需检查其他哨兵是否存活、能否互通

这套架构不复杂,但每层依赖都必须显式验证。上线前务必模拟主节点 kill -9,观察哨兵日志、从节点角色变更、客户端是否自动重连新主——真实故障不会给你二次机会。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

redis 主从复制

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2512

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

749

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2256

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4152

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

667

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习