讲师中心 微信公众号
AI工具推荐 视频效率加速

Redis主从同步过程中连接重置原因有哪些?

梦瑶吖_2023

梦瑶吖_2023

发布时间:2026-07-29 07:07:53

|

1009人浏览过

|

来源于php中文网

原创

repl-timeout过短会导致主节点主动断连,形成“断开→全量→再超时”死循环;必须根据网络P99 RTT×3叠加全量同步耗时调优,生产推荐600秒,并同步收紧client-output-buffer-limit slave参数。

redis主从同步过程中连接重置原因有哪些?

repl-timeout 设置过短导致连接被主动断开

Redis 主从同步时,repl-timeout 控制主节点等待从节点响应的最长时间。默认值是 60 秒,一旦超时,主节点会主动关闭连接并记录 Connection reset by peer。这不是网络中断,而是主节点“自己动手”发 RST 包。

  • 现象:从节点日志频繁出现 Master timeout, disconnecting...,紧接着主节点报 error 104
  • 验证方式:执行 config get repl-timeout 查当前值;再用 info replication 看 master_last_io_seconds_ago 是否常接近或超过该阈值
  • 典型诱因:跨机房同步(高延迟)、从节点 CPU 或磁盘 IO 过载(响应慢)、主节点写入压力大导致命令积压延迟发送
  • 建议值:内网环境可保持默认;跨 AZ 或公网部署建议调至 300–600;若从节点负载不稳,需同步优化其资源而非一味拉长 timeout

复制缓冲区(repl-backlog)溢出触发重连与全量同步

主节点靠 repl-backlog 缓存最近写命令,供从节点断连后做部分重同步(PSYNC)。一旦该缓冲区被写满,新命令覆盖旧命令,从节点再连就无法找到断点,只能发起全量同步——而全量同步期间主节点仍持续写入,加剧缓冲区压力,形成恶性循环。

  • 现象:从节点反复断连、重连,INFO replication 中 slave_repl_offset 与 master_repl_offset 差值剧烈跳变,且 repl_backlog_active 常为 1 但 repl_backlog_histlen 恒等于 repl_backlog_size
  • 关键参数:repl-backlog-size 默认 1MB,对高写入场景严重不足;repl-backlog-ttl 决定空闲时缓冲区是否释放(0 表示永驻)
  • 计算参考:若主节点每秒写入 5MB 数据,repl-backlog-size 至少设为 5 * repl-timeout MB,留出安全余量
  • 注意:增大 repl-backlog-size 会占用主节点额外内存,需权衡

从节点加载 RDB 时主节点连接被中间设备切断

全量同步阶段,主节点生成 RDB 并传输,此时连接处于长时数据流状态。很多云厂商 LB、NAT 网关或防火墙对“无应用层心跳”的 TCP 连接有默认超时(常见 300–900 秒),一旦超过即发 RST 断开连接,表现为 Connection reset by peer,但错误实际发生在网络路径中段,而非 Redis 进程本身。

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

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

下载
  • 现象:RDB 传输到 70%–90% 时突然中断,从节点日志显示 IOERR error or timeout reading from socket,主节点无对应错误日志
  • 验证方式:抓包看是否有来自非主/从 IP 的 RST 包;检查 LB 控制台会话超时设置;对比 net.ipv4.tcp_keepalive_time(默认 7200s)是否远大于中间设备限制
  • 解法优先级:在主节点启用 tcp-keepalive(redis.conf 中设 tcp-keepalive 60),让内核每 60 秒发 keepalive 探针;其次调整 LB 超时时间 ≥ RDB 预估最大传输时长 + 60 秒
  • 避坑:不要依赖客户端 keepalive,Redis 同步走的是服务端直连,keepalive 必须由 Redis 进程所在系统内核发出才有效

从节点执行 SLAVEOF/REPLICAOF 后清库失败或卡住

从节点执行 REPLICAOF 切换主库时,若原数据量大或磁盘 IO 差,FLUSHALL 清库操作可能耗时数秒甚至更久。此期间从节点无法响应主节点的同步请求,导致主节点判定超时并重置连接——尤其当 repl-timeout 过短或主节点正忙于写入时。

  • 现象:从节点刚执行 REPLICAOF 就断连,日志出现 MASTER <-> REPLICA sync: Flushing old data 后无后续,主节点报 timeout
  • 关键线索:INFO replication 中 slave_repl_offset 长期为 0,master_link_status 反复在 up/down 间跳变
  • 缓解手段:避免在业务高峰期执行主从切换;确保从节点磁盘使用率 DEBUG RELOAD(慎用)或手动 FLUSHALL 再启动同步
  • 本质矛盾:清库是强一致性前提,但耗时不可控。没有绕过它的办法,只有前置控制和资源保障

真实环境里,这四类原因常交织出现——比如 repl-backlog 溢出引发重连,重连又触发清库,清库慢再撞上 repl-timeout,最后被 LB 截断。排查必须按链路顺序:先确认是哪一端发的 RST(主?从?中间?),再锁定触发动作(超时?缓冲区满?清库卡住?),参数调优永远要配合可观测性数据,而不是拍脑袋改数字。

热门AI工具

更多
墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

相关专题

更多
常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4449

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3995

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7352

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

643

2024.04.07

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

756

2024.04.07

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7182

2024.04.07

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1160

2024.04.07

redis的8种数据类型有哪些
redis的8种数据类型有哪些

redis 提供 8 种数据类型:字符串(文本、数字、二进制)、哈希(键值对)、列表(有序集合)、集合(无序唯一元素)、有序集合(按分数排序)、地理空间(地理位置)、hyperloglog(估计大数据基数)和位图(位序列存储)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1076

2024.04.07

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

热门下载

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

精品课程

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

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn