zoukankan      html  css  js  c++  java
  • 一站式学习Redis 从入门到高可用分布式实践(慕课)第七章 Redis复制的原理与优化

    • 什么是主从复制
    • 主从复制的配置
    • 全部复制和部分复制
    • 故障处理
    • 开发运维常见问题

    主从复制作用

    数据副本

    扩展读性能

    简单总结:

    1.一个master可以有多个slave

    2.一个slave只能有一个master

    3.数据流向是单向的,master到slave

    主从复制的配置

    两种实现方式:

             slaveof命令    slaveof   127.0.0.1 6379

    断掉主从不会删掉数据,但是再找新的主时候会被清空

              配置

    全部复制和部分复制

    run_id:b75a2ccffc783a8379934046ad8d716e91740cd9

    master_repl_offset:1079 偏移量

    redis-cli -p 6382 info replication

    全量复制的开销

    1. redis什么时候会发生全量复制?

    a) redis slave首启动或者重启后,连接到master时

    b) redis slave进程没重启,但是掉线了,重连后不满足部分复制条件

    2. redis什么时候会发生部分复制?

    先来看部分复制需要的条件

    a) 主从的redis版本>=2.8

    b) redis slave进程没有重启,但是掉线了,重连了master(因为slave进程重启的话,run id就没有了)

    c) redis slave保存的run id与master当前run id一致 (注:run id并不是pid,slave把它保存在内存中,重启就消失)

    d) redis slave掉线期间,master保存在内存的offset可用,也就是master变化不大,被更改的指令都保存在内存

    3. redis进程重启后会发生全量复制还是部分复制?

    a) master重启时,run id会发生变化

    b) slave重启时,run id会丢失

    答:很显然,会发生全量复制,因为部分复制的条件之一run id已经不能满足

    4.当全量复制或者同步复制完毕,增量是如何更新到slave的?

    答:通过流式的命令更新,此时master就是slave的client,这样去理解。

    5. run id如何查看?

    答:通过info server命令查看

     故障处理

    SLAVE宕机

     

    MASTER宕机

     

    开发运维常见问题

     1.读写分离  #读流量分摊到从节点,MySQL也是读写分离

                可能遇到的问题:

                复制数据延迟

                读到过期数据

                从节点故障  

     2.主从配置不一致

                例如maxmemory不一致:丢失数据 

                例如数据结构优化参数(hash-max-ziplist-entries):内存不一致

     3.规避全量复制

               3.1   第一次全量复制,不可避免     小主节点 、低峰

               3.2    节点运行ID不匹配  主节点重启(运行ID变化)

                       故障转移,例如哨兵或集群(sentinals和Redis Cluster)

               3.3   复制积压缓冲区不足

                      网络中断,部分复制无法满足

                      增大复制缓冲区配置rel_backlog_size 默认1m,网络“增强”。#10m

     4.规避复制风暴

                 4.1   单主节点复制风暴

                         问题:主节点重启,多从节点复制

                         解决:更换复制拓扑

                 4.2   单机器复制风暴

            主节点分散多机器

  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/jiang910/p/10026646.html
Copyright © 2011-2022 走看看