标签:数据结构 idt master 网络 inf 服务器 img ica 自己的
同步,命令传播
PSYNC: 完整重同步,部分重同步
复制偏移量
复制积压缓冲区(一个FIFO队列,默认大小1M)
SLAVEOF命令
REPLCONF ACK <replication_offset>
1) 初始化服务器
2) 使用Sentinel专用代码
3) 初始化Sentinel状态
4) 初始化Sentinel状态的masters属性
5) 创建连向主服务器的网络连接
检测主观下线状态
检测客观下线状态
clusterNode记录自己的状态,并为集群中的其他节点(包括主节点和从节点)都创建了一个相应的clusterNode结构,以此来记录其他节点的状态.
clusterNode的link属性是一个clusterLink结构,该结构保存了连接节点所需的信息,比如套接字描述符,输入缓冲区,输出缓冲区.
最后,每一个节点都保存这一个clusterState结构,这个结构记录了在当前节点的视角下集群目前的状态:
命令: CLUSTER MEET
clusterNode中的slots属性和numsolts属性记录了节点负责处理哪些槽,
CLUSTER ADDSLOTS命令接受一个或多个槽作为参数,并将输入的槽指派给接受该命令的节点负责.
计算键属于哪一个槽命令:CLUSTER KEYSLOT <key>
节点和单机数据库在数据库方面有一个区别:节点只能使用0号数据库,而单机数据库则没有这一限制.
clusterState中的slots_to_keys跳跃表来保存槽与键之间的关系:
重新分片由Redis集群管理软件redis-trib负责执行.
ASK错误:如果key所属的槽i正在进行迁移,节点会向客户端发出一个ASK错误.
MOVED错误:代表槽的负责权已经从一个节点转移到了另一个节点.
ASKING命令:
设置从节点:CLUSTER REPLICATE <node_id>
从节点相关设置:
主节点相关设置:
集群中的每个节点都会定期向其他节点发送PING消息,如果未在规定时间接收到PONG消息,那么就将该节点标记为疑似下线(PFAIL);
半数以上复杂处理槽的主节点都将某节点标识为疑似下线,则该节点将被标记为FAIL节点.
MEET, PING, PONG, FAIL消息, PUBLISH消息.
标签:数据结构 idt master 网络 inf 服务器 img ica 自己的
原文地址:https://www.cnblogs.com/cheungchein/p/8902562.html