Redis主从复制常见的一些问题

本文探讨了Redis主从复制过程中遇到的问题,包括频繁全量复制、网络中断导致的数据不一致。针对这些问题,提出了优化缓冲区大小、调整超时时间、增强ping指令等解决方案,以确保主从数据同步并降低资源占用。
摘要由CSDN通过智能技术生成
频繁的全量复制(一)

伴随着系统的运行,master的数据会越来越大,一旦master重启,runid将发生变化,会导致所有的slave进行全量复制

内部优化调整方案:

  1. master 内部创建master_replid变量,使用runid相同的策略生成,长度41位,并发送给左右的slave
  2. 在master关闭时执行命令shutdown save,进行RDB持久化,将runid和offset存储到RDB文件中
    • repl-id repl-offset
    • 通过redis-check-rdb命令可以查看该信息
  3. master重启后加载RDB文件,恢复数据
    重启后,将RDB文件中保存的repl-id与repl-offset加载到内存中

    master_repl_id = repl-id
    master_repl_offset=repl-offset
    通过info命令可以查看该信息

作用:本机保存上次runid,重启后恢复该值,使所有slave认为还是之前的master

频繁全量复制(二)
  • 问题现象
    • 网络环境不佳,出现网络中断,slave不提供服务
  • 问题原因
    • 复制缓存区过小,断网后slave的offset越界,出发全量复制
  • 最终结果
    • slave反复进行全量复制
  • 解决方案
    • 修改缓冲区大小

    repl-backlog-size

  • 建议设置如下
    • 测算从master到slave重连的平均时长second
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值