You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Redis异常:重启后可用但一段时间失效,同步报错

Redis主从同步握手失败导致容器停止的修复方案

排查与修复步骤

  • 检查主从网络连通性
    进入Redis从容器,执行ping 主节点IP确认网络可达,再用telnet 主节点IP 6379测试端口是否开放。若为跨Docker主机部署,需确认防火墙、安全组未阻断6379端口;若为同主机容器,确保二者在同一Docker网络内。

  • 验证主节点同步配置
    主节点需确保:

    • 若设置了requirepass,从节点必须配置masterauth(已设置可跳过);
    • 执行redis-cli info replication查看主节点的连接状态,确认从节点未被拒绝;
    • 检查主节点日志,排查是否存在同步时内存不足、连接数耗尽的错误。
  • 调整从节点同步超时与重试参数
    在从节点的启动配置中增加超时与重试设置,避免网络延迟导致握手失败:
    若使用Docker命令启动,可添加参数:

    docker run -d --name redis-slave \
      -v /your/local/redis.conf:/usr/local/etc/redis/redis.conf \
      redis redis-server /usr/local/etc/redis/redis.conf \
      --replicaof 主节点IP 6379 \
      --masterauth 主节点密码 \
      --repl-timeout 60 \
      --repl-retry-delay 5
    

    若使用配置文件,在redis.conf中添加:

    repl-timeout 60
    repl-retry-delay 5
    
  • 检查主节点连接数限制
    在主节点执行redis-cli config get maxclients,若返回值过小,会导致从节点连接被拒绝。可通过config set maxclients 10000临时调整,或在主节点配置文件中永久修改后重启。

  • 排查主节点内存与持久化问题

    • 执行redis-cli info memory查看used_memory_peak是否接近maxmemory,若内存不足,调整maxmemory值或配置内存淘汰策略(如maxmemory-policy allkeys-lru);
    • 检查主节点日志,确认RDB/AOF持久化无错误——同步时主节点需生成RDB文件,持久化失败会直接中断同步。
  • 解除Docker容器资源限制
    执行docker stats redis-slave查看容器CPU、内存占用,若存在资源不足导致进程被系统终止的情况,调整容器资源分配,例如:

    docker run -d --name redis-slave \
      --memory 2g --cpus 1 \
      # 其余配置参数...
    

内容的提问来源于stack exchange,提问作者Masson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:01:27