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

频繁的全量复制(一)伴随着系统的运行,master的数据会越来越大,一旦master重启,runid将发生变化,会导致所有的slave进行全量复制内部优化调整方案:master 内部创建master_replid变量,使用runid相同的策略生成,长度41位,并发送给左右的slave在master关闭时执行命令shutdown save,进行RDB持久化,将runid和offset存储到RDB文件中repl-id repl-offset通过redis-check-rdb命令可以查看该信息
摘要由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、付费专栏及课程。

余额充值