美文网首页
Redis-高并发篇

Redis-高并发篇

作者: 靈08_1024 | 来源:发表于2018-05-26 20:51 被阅读3次

    越来越多的企业选择使用redis来管理缓存,而在高并发时,单台机器的读取很明显有些弱,这个时候就需要增添机器。本篇主要讲述redis的集群。

    redis集群

    在redis集群中,每一个节点都存有整个集群中所有的主节点和从节点信息。

    判断节点挂掉
    在集群中,如果半数以上的节点去ping一个节点不通,集群就认为它挂掉了。

    投票机制
    在集群中,如果主节点A和他的所有从节点都挂掉了,那么集群会进入fail状态。如果半数以上的主节点挂掉了,集群也会进入到fail状态。
    ps : fail状态就是集群挂掉了。。

    redis集群挂掉的情况:
    1)任意master挂掉,且该master所有子节点也挂掉;
    2)半数master挂掉。

    redis的集群方案

    对于redis的集群方案,现阶段认可的是多主多从方案。
    原因:1)多主节点可以防止部分节点坏掉;
    2)如果有某个主节点坏掉了,其从节点会顶替上去;
    3)主写从读,单一功能,效率提高。

    redis同步

    在redis的同步中,主节点同步给其中所有的从节点。

    主从同步

    runID:每一个redis节点都有一个runID,类似于身份标识。

    offset:复制偏移量。在master和slave中都会有这个量。master传输出去N个字节,master的offset增加N;slave收到N个字节,slave的offset增加N。

    复制积压缓冲区:维护在master中一个FIFO(先进先出)队列。在master每次向外传输时,也会向该队列中传输。该队列中会有对应的偏移量和其对应的字节记录。

    同步.png

    slave有无master的runid(身份ID):无,即第一次;有,则不是第一次。
    如果是第一次请求,slave全量复制master,并获取runid。
    如果不是第一次请求,比较runid,相同再比较复制偏移量,若偏移量相同,继续传输;
    若偏移量不同,从复制积压缓冲区里去取对应的复制偏移量之后的数据,有就从复制积压缓冲区里传输复制,没有就完整复制。
    runid不一样,视为第一次请求。

    参考:redis集群设计原理
    主从同步原理

    相关文章

      网友评论

          本文标题:Redis-高并发篇

          本文链接:https://www.haomeiwen.com/subject/hhgujftx.html