当前位置: 首页 > news >正文

网站怎么做全屏滚动条bt磁力在线种子搜索神器

网站怎么做全屏滚动条,bt磁力在线种子搜索神器,网站后台如何做文件下载连接,重庆建站网站免费集群 槽指派 CLUSTER ADDSLOTS命令的实现 CLUSTER ADDSLOTS命令接受一个或多个槽作为参数&#xff0c;并将所有输入的槽指派给接收该命令的节点负责: CLUSTER ADDSLOTS <slot> [slot ...]CLUSTER ADDSLOTS命令的实现可以用以下伪代码来表示: def CLUSTER_ADDSLOTS(*…

集群

槽指派

CLUSTER ADDSLOTS命令的实现

CLUSTER ADDSLOTS命令接受一个或多个槽作为参数,并将所有输入的槽指派给接收该命令的节点负责:

CLUSTER ADDSLOTS <slot> [slot ...]

CLUSTER ADDSLOTS命令的实现可以用以下伪代码来表示:

def CLUSTER_ADDSLOTS(*all_input_slots):# 遍历所有输入槽,检查它们是否都是未指派槽for i in all_input_slots:# 如果有哪怕一个槽已经被指派给了某个节点# 那么向客户端返回错误,并终止命令执行if clusterState.slots[i] != null:reply_error()return# 如果所有输入槽都是未指派槽# 那么再次遍历所有输入槽,将这些槽指派给当前节点for i in all_input_slots:# 设置clusterState结构的slots数组# 将slots[i]的指针指向代表当前节点的clusterNode结构clusterState.slots[i] = clusterState.myself# 访问代表当前节点的clusterNode结构的slots数组# 将数组在索引i上的二进制位设置为1setSlotBit(clusterState.myself.slots, i);
例子

在这里插入图片描述

  • 举个例子。如图展示了一个节点的clusterState结构,clusterState.slots数组中的所有指针都指向NULL,并且clusterNode.slots数组中的所有二进制位的值都是0,这说明当前节点没有被指派任何槽,并且集群
    中的所有槽都是未指派的。当客户端对如图所示的节点执行命令:
CLUSTER ADDSLOTS 1 2

将槽1和槽2指派给节点之后,节点的clusterState结构将被更新为如图所示的样子:
1.clusterState.slots数组在索引1和索引2上的指针指向了代表当前节点的clusterNode
2.并且clusterNode.slots数组在索引1和索引2上的为止被设置成了1

最后,在CLUSTER ADDSLOTS命令执行完毕之后,节点会通过发送消息告知集群中的其他节点,自己目前正在处理哪些槽
在这里插入图片描述

在集群中执行命令

在对数据库中的16384个槽都进行了指派之后,集群就会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了,当客户端向节点发送与数据库键有关的命令时,接收命令的节点会计算出命令要处理的数据库键属于哪个槽,并检查这个槽是否指派给了自己:

  • 1.如果键所在的槽正好就指派给了当前节点,那么节点直接执行这个命令
  • 2.如果键所在的槽并没有指派给当前节点,那么节点会向客户端返回一个MOVED错误,指引客户端转向(redirect)至正确的节点,并再次发送之前想要执行的命令,如图所示

例子

  • 举个例子。如果在之前提到的由7000、7001、7002三个节点组成的集群中,用客户端连上节点7000,并发送以下命令,那么命令会直接被节点7000执行:
127.0.0.1:7000> SET date "2024-04-10"
OK

因为键date所在的槽2022正式由节点7000负责处理的。但是,如果执行以下命令,那么客户端会先被转向至节点7001,然后再执行命令

127.0.0.1:7000> SET msg "happy new year!"
-> Redirected to slot[6257] located at 127.0.0.1:7001
OK127.0.0.1:7001> GET msg
"happy new year!"

这是因为msg所在的槽6257是由节点7001负责处理的,而不是由最初接收命令的节点7000负责处理:
1.当客户端第一次向节点7000发送SET命令的时候,节点7000会向客户端返回MOVED错误,指引客户端转向至节点7001
2.当客户端转向到节点7001之后,客户端重新向节点7001发送SET命令,这个命令会被节点7001成功执行

计算键属于哪个键

节点使用以下算法来计算给定键key属于哪个槽:

def slot_number(key):return CRC16(key) & 16383

其中CRC16(key)语句用于计算键key的CRC-16校验和,而& 16383语句则用于计算出一个介于0~16383之间的整数作为键key的槽号。可以使用CLUSTER KEYSLOT 命令可以查看一个给定键属于哪个槽:

127.0.0.1:7000> CLUSTER KEYSLOT "date"
(integer) 2022
127.0.0.1:7000> CLUSTER KEYSLOT "msg"
(integer) 6257
127.0.0.1:7000> CLUSTER KEYSLOT "name"
(integer) 5798
127.0.0.1:7000> CLUSTER KEYSLOT "fruits"
(integer) 14943

CLUSTER KEYSLOT命令就是通过调用上面给出的槽分配算法来实现的,以下是该命令的伪代码实现:

def CLUSTER_KEYSLOT(key):
# 计算槽号
slot = slot_number(key)# 将槽号返回给客户端
reply_client(slot)

判断槽是否由当前节点负责处理。

当节点计算出键所属的槽i之后,节点就会检查自己在clusterState.slots数组中的项i,判断键所在的槽是否由自己负责:

  • 1.如果clusterState.slots[i]等于clusterState.myself,那么说明槽i由当前节点负责,节点可以执行客户端发送的命令
  • 2.如果clusterState.slots[i]不等于clusterState.myself,那么说明槽i并非由当前节点负责,节点会根据clusterState.slots[i]指向的clusterNode结构所记录的节点IP和端口号,向客户端返回MOVED错误,指引客户端转向至正在处理槽i的节点
例子

在这里插入图片描述

  • 举个例子。假设如图所示为节点7000的clusterState结构:
    1.当客户端向节点7000发送命令SET date "2024-04-10"的时候,节点首先计算出键date属于槽2022,然后检查得出clusterState.slots[2022]等于clusterState.myself,这说明槽2022正是由节点7000负责,
    于是节点7000直接执行这个SET命令,并将结果返回发送命令的客户端
    2.当客户端向节点7000发送命令SET msg "happy new year!"的时候,节点首先计算出键msg属于槽6257,然后检查clusterState.slots[6257]是否等于clusterState.myself,结果发现两者并不相等:这说明槽6257并非
    由节点7000负责处理,于是节点7000访问clusterState.slots[6257]所指向的clusterNode结构,并根据结构中记录的IP地址127.0.0.1和端口号7001,向客户端返回错误MOVED 6257 127.0.0.1:7001,指引节点转向至正在负责处理槽6257的节点7001
http://www.yidumall.com/news/10784.html

相关文章:

  • 哪个网站有激光打标业务做如何做网站推广广告
  • 用jsp做的网站需要什么工具最受欢迎的十大培训课程
  • 公司网站 备案bt蚂蚁磁力搜索天堂
  • 如何去看网站是不是响应式系统优化的意义
  • 桂林网站制作浙江seo外包
  • 适合团购报名的网站开发广州企业网站seo
  • wordpress图片清晰度做seo需要用到什么软件
  • 西安做百度推广网站 怎样备案千万不要学网络营销
  • 鲜花网站建设的主要工作流程网络整合营销4i原则是指
  • 外贸网站建设 蚂蚁 深圳维普网论文收录查询
  • 中文建网站上海网站外包
  • 网站建设客户分析免费网站代理访问
  • 装饰公司营销网站建设潍坊seo计费
  • 网站建设与维护试题含答案sem分析是什么
  • 江苏营销型网站公司谷歌seo推广公司
  • 国外知名设计网站大全seo全网推广
  • 深圳方维网站建设公司在线培训
  • 怎么部署自己的网站网络站点推广的方法有哪些
  • 最新域名永久跳转百度优化大师
  • wordpress改颜色网站推广与优化平台
  • 佛山网站制作做多少钱在线企业管理培训课程
  • 青海营销网站建设公司seo软件开发
  • 高端论坛网站建设百度推广要自己建站吗
  • 珠海网站建设开发深圳网络seo推广
  • 成都设计网站的公司名称培训机构管理系统
  • dede 添加演示网站seo搜索引擎优化人员
  • 绍兴高端网站开发种子资源
  • 贵阳餐饮设计公司官网搜索引擎优化方法有哪几种
  • 网站app怎么做的免费发布推广的平台
  • 某绿色园林企业网站源码win10优化工具