美文网首页
Redis--集群

Redis--集群

作者: 简书徐小耳 | 来源:发表于2019-04-21 18:21 被阅读0次

    节点

    • 1.判断是集群模式还是单机模式,集群则是变为一个节点
    • 2.新增集群数据结构:clusterNode,该数据结构会保存自己在集群中的信息,clusterLink,Clusterstate

    槽指派

    • 1.整个集群被分为16384个槽
    • 2.每个节点可以分得一些槽
    • 3.整个集群如果所有槽都分配到节点上,集群才是ok,否则就是fail。
    • 4.在clusterNode中通过数组标识哪些节点被当前的节点处理。
    • 5.广播传输自己节点处理的槽到其他节点。

    在集群中执行命令

    • 1.如果客户端把命令发送到一个节点上,如果该处理的槽是对应节点上的则执行,否则返回错误信息
    • 2.错误信息包含正确地址,客户端根据地址去请求真正的节点。

    重新分片

    • 1.当节点下线,会把槽指派给其他节点。

    ASK错误

    • 1.当槽迁移过程中,如果我们请求到了老的节点,老节点检查slot是否还在,如果在就执行。
    • 2.如果不在的话则返回ASK错误,该错误包含key所在的目标节点。

    复制与故障转移

    • 1.如果主节点下线则,集群中的其他的节点会选择该主节点的从节点作为新的主节点。
    • 2.集群中的节点会互相发送消息来检测其他节点是否在线
    • 3.当节点A发现B下线了,会更新自己内部对于B的状态,然后发送下线报告到集群其他节点
    • 4.如果有超过一半的节点认为节点B下线,则会广播然后其他节点就会都会标记该节点。
    • 5.选举新的主节点和新的leader sentinel相似。

    相关文章

      网友评论

          本文标题:Redis--集群

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