Redis集群-节点

作者: 于情于你 | 来源:发表于2020-08-24 07:58 被阅读0次

节点

    一个集群由多个节点构成,最初每个节点都是独立的,每个节点都是一个集群。要创建一个真正可用的集群,我们需要把哥哥独立的节点连接起来。
连接节点的命令:

CLUSTER MEET <ip> <port>

    向一个node发送这个命令的时候,可以让node和指定ip port的节点握手。握手一旦成功,node节点就会将指定ip port的节点添加到节点当前所在的集群中。

启动节点

    一个节点就是一个运行在集群模式下的Redis服务器,Redis服务器在启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式。


image.png
集群的数据结构

每个节点都会使用一个clusterNode结构来记录自己的状态:


image.png

    link属性是一个clusterLink结构,该结构保存了连接节点所需的有关信息,比如套接字描述符,输入缓冲区和输出缓冲区。


image.png
    最后,每个节点都保存着一个clusterState结构,这个结构记录了当前节点的视角下,集群所处的状态。比如集群是在线还是下线等。
image.png
Cluster MEET命令的实现
CLUSTER MEET <ip> <port>

    假如收到命令的节点A和节点B进行握手:
1)节点A会为节点B创建一个clusterNode结构,并将该结构添加到自己的clusterState.nodes字典里面。
2)之后,节点A将根据CLUSTER MEET命令给定的IP地址和端口号,向节点B发送一条 MEET消息(message)。
3)如果一切顺利,节点B将接收到节点A发送的MEET消息,节点B会为节点A创建一个clusterNode结构,并将该结构添加到自己的clusterState.nodes字典里面。
4)之后,节点B将向节点A返回一条 PONG 消息。
5)如果一切顺利,节点A将接收到节点B返回的PONG消息,通过这条PONG消息节点A可以知道节点B已经成功地接收到了自己发送的 MEET消息。
6)之后,节点A将向节点B返回一条PING消息。
7)如果一切顺利,节点B将接收到节点A返回的PING消息,通过这条PING消息节点B可以知道节点A已经成功地接收到了自己返回的PONG 消息,握手完成。


image.png

    之后,节点A会将节点B的信息通过Gossip协议传播给集群中的其他节点,让其他节点也与节点B进行握手,最终,经过一段时间之后,节点B会被集群中的所有节点认识。

相关文章

  • 【Redis】集群NetCore实战

    环境准备 Redis集群(Windows集群搭建)启动Redis集群,给每个节点加上Title 安装StackEx...

  • Redis 集群

    Redis集群101 Redis 集群是一个提供在多个Redis节点间自动地共享数据的程序集。 Redis 集群在...

  • redis集群安装

    集群的概念 Redis集群提供了一种运行Redis安装的方式,其中数据自动分割多个Redis节点。Redis集群的...

  • Redis集群 笔记 2020-02-10

    Redis集群 Redis集群(cluster): 在多个Redis节点间共享数据。去中心化,无proxy。(区块...

  • Reids搭建集群

    Redis集群的搭建 Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。Redis...

  • Redis集群搭建

    Redis集群搭建教程 一、概述 Redis3.0之后的版本支持集群。1.1 Redis cluster现状 节点...

  • Java-分布式框架-redis-3

    一、Redis哨兵集群弊端 redis3.0之前比较可靠的集群就是哨兵集群,主从节点,主节点拥有写与读的权限,从节...

  • Memcached 与Redis (3): Redis 的集群与

    1. Redis 集群 1.1 集群节点 加入集群:节点使用cluster meet 命令来尝试握手, 若成...

  • 重新刷新你对Redis集群的理解

    Redis集群 Redis 集群通过 分片 来进行数据共享,并提供复制和故障转移功能。 1. 节点 1.1 节点的...

  • Linux下Redis集群部署

    一、Redis集群介绍 Redis 集群是一个提供在多个Redis节点间共享数据的程序集。Redis集群并不支持处...

网友评论

    本文标题:Redis集群-节点

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