7.Redis复制的原理与优化

<!doctype html>7.Redis复制的原理与优化

Redis复制的原理与优化

什么是主从复制

  1. 单机有什么问题

    • 机器故障
    • 容量瓶颈
    • QPS瓶颈
  2. 主从复制的作用

    • 数据副本
    • 宽展读性能
  3. 总结

    • 一个master可以有多个slave
    • 一个slave只能有一个master
    • 数据流向是单向的,master到slave

复制的配置

命令配置

 
 
 
xxxxxxxxxx
 
 
 
 
* 命令配置复制
* slaveof 命令  在从节点执行
* 取消复制
* slaveof no one 在从节点执行  清除所有的从节点数据
 

配置文件 从节点配置

 
 
 
xxxxxxxxxx
 
 
 
 
* slaveof ip prot 
* slave-read-only yes
 

比较

方式 命令 配置
优点 无需重启 同意配置
缺点 不便于管理 需要重启

全量复制和部分复制

全量复制

  • run_id

  • master_repl_offset:1865 偏移量 主从偏移量同步更新

  • 全量复制开销

    • bgsave时间
    • RDB网络传输信息
    • 从节点清空数据时间
    • 从节点加载RDB时间
    • 可能在AOF重写时间

部分复制 redis2.8之后

故障处理

  • 总故障转移

  • slave宕机

    • 一主两从
  • master宕机

    • slaveof no one
    • slaveof new master
  • 主从复制故障转移问题

    • sentinel

开发运维常见问题

  • 读写分离:读分摊到从节点

    • 复制数据延迟

    • 读到过期数据 - redis 3.2已经解决

      • 删除过期数据 从节点无法删除数据

        • 懒惰策略 读到过期数据再判断删除
        • 定时删除
    • 从节点故障 优化主节点

  • 主从配置不一致

    • maxmemory不一致:丢失数据
    • 例如数据结果优化参数(hash-max-ziplist-entries):内存不一致
  • 规避全量复制

    • 第一次全量复制

      • 第一次不可避免
      • 小主节点,低峰
    • 节点运行ID不匹配

      • 主节点重启(运行ID变化) 4.0 psyncto
      • 故障转移 例如哨兵 或集群
    • 复制积压缓冲区不足

      • 网络中断,部分复制无法满足
      • 增大复制缓冲区配置rel_backlog_size 网络 “增强”
  • 规避复制风暴

    • 单节点复制风暴

      • 问题:主节点重启,所有的从节点全量复制 风暴 cpu 内存 网络

      • 解决:更换复制拓扑

        • master - slave - slave-1-a

          • slave-2-b
    • 单机器复制风暴

      • 机器宕机后 大量复制
      • 主节点分散多机器

猜你喜欢

转载自www.cnblogs.com/richiewlq/p/12191278.html