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

建网站外包站长工具备案查询

建网站外包,站长工具备案查询,响应式网站建设服务,wordpress旅游社区17.3 在集群中执行命令 接收命令的节点会计算出命令要处理的数据库键属于哪个槽,并检查这个槽是否指派给了自己: 如果是的话,直接执行这个命令 否则,节点向客户端返回一个MOVED错误,指引客户端转向redirect至正确的节…

17.3 在集群中执行命令

接收命令的节点会计算出命令要处理的数据库键属于哪个槽,并检查这个槽是否指派给了自己:

  • 如果是的话,直接执行这个命令

  • 否则,节点向客户端返回一个MOVED错误,指引客户端转向redirect至正确的节点,并再次发送之前想要执行的命令

17.3.1 计算键属于哪个槽

节点使用CRC16(key&16383)来计算键key属于哪个槽,其中CRC16语句用于计算键key的CRC-16校验和,而&16383语句则用于计算出一个介于0~16383之间的整数作为键key的槽号

使用CLUSTER KEYSLOT <key>可以查看一个给定键属于哪个槽

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

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

  • 如果clusterState.slots[i] = clusterState.myself,说明槽i由当前节点负责

  • 否则,节点会根据clusterState.slots[i] 指向的clusterNode结构所记录的节点IP和端口号,向客户端返回MOVED错误,指引客户端转向正确节点。

17.3.3 MOVED错误

MOVED错误的格式为MOVED <slot> <ip>:<port>,其中slot为键所在的槽,而ip/port则是负责处理槽slot的节点的IP地址和端口号。客户端会根据MOVED错误中提供的IP地址和端口号,转向至负责处理槽slot的节点,并向该节点重新发送之前想要执行的命令

一个集群客户端通常会与集群的多个节点创建套接字连接,而所谓的节点转向实际上是换一个套接字来发送命令。如果客户端未与想要转向的节点创建套接字连接,客户端会先根据MOVED错误提供的IP地址和端口号来连接节点,然后再进行转向。

要注意,集群模式的客户端收到MOVED错误后,是根据MOVED错误自动进行节点转向的,并打印出转向信息。但是如果是单机stand alone模式的客户端,MOVED错误就会被客户端打印出来。

17.3.4 节点数据库的实现

节点只能使用0号数据库,而且除了将键值对保存在数据库里面之外,还会用clusterState结构里的slots_to_keys跳跃表来保存槽和键之间的关系,跳跃表里每个节点的分值score都是一个槽号,而每个节点的成员member都是一个数据库键

通过跳跃表,节点可以很方便的对属于某个或某些槽的所有数据库键进行批量操作,例如CLUSTER GETKEYSINSLOT <slot> <count>命令可以返回最多count个属于槽slot的数据库键,就是通过遍历跳跃表实现的

17.4 重新分片

Redis集群的重新分片操作可以将任意数量已经指派给某个节点(源节点)的槽改为指派给另一个节点(目标节点),并且相关槽所属的键值对也会从源节点被移动到目标节点。

重新分片操作可以在线进行,而且源节点和目标节点都可以继续处理命令请求。

是由Redis的集群管理软件redis-trib负责执行的,Redis提供了进行重新分片所需的所有命令,redis-trib则通过向源节点和目标节点发送命令来进行重新分片操作,具体步骤如下:

  1. 对目标节点发送CLUSTER SETSLOT <slot> IMPORTING <source_id> 命令,让目标节点准备好从源节点导入import属于槽slot的键值对

  2. 对源节点发送 CLUSTER SETSLOT <slot> MIGRATE <target_id> 命令,让源节点准备好将属于槽slot的键值对迁移migrate到目标节点

  3. 向源节点发送CLUSTER GETKEYSINSLOT <slot> <count>命令,获得最多count个属于槽slot的键值对的键名key name

  4. 对于步骤3获得的每个键名,redis-trib都向源节点发送一个MIGRATE <target_ip> <target_port> <key_name> 0 <timeout>命令,将被选中的键原子性地从源节点迁移到目标节点

  5. 重复执行步骤3和4,直到源节点保存的所有属于槽slot的键值对都被迁移到目标节点。

  6. redis-trib向集群的任意一个节点发送CLUSTER SETSLOT <slot> NODE <target>命令,将槽slot指派给目标节点,会通过消息发送到整个集群

http://www.hkea.cn/news/925715/

相关文章:

  • 建设网站行业云网络推广理实一体化软件
  • 如何用自己公司网站做邮箱关键字是什么意思
  • 古典网站建设欣赏马鞍山网站seo
  • 商城网站建设报价方案免费建网站软件下载
  • 中国做美国酒店的网站好竞价托管收费标准
  • 网站开发与设计静态网页源代码站长之家app下载
  • 松原做网站app运营推广是干什么
  • 做简单的网站链接2024新闻热点摘抄
  • 百度网站站长环球网疫情最新
  • 颍上做网站西安seo网站关键词优化
  • 有没有兼职做设计的网站吗知名网络软文推广平台
  • 数据百度做网站好用吗米拓建站
  • 网站维护运营怎么做搜索引擎优化通常要注意的问题有
  • 圆梦科技专业网站建设恶意点击软件有哪些
  • 如何做vip电影解析网站竞价恶意点击器
  • 开发简单小程序公司深圳网站优化哪家好
  • 网站开发劣势搜索引擎排名优化
  • 桂林网站优化公司企业网络营销顾问
  • 上海外贸出口代理公司排名搜索引擎优化的主要工作有
  • 一般做企业网站需要什么资料广告咨询
  • 广州网站建设兼职网站为什么要做seo
  • 中企动力官网 网站怎么在平台上做推广
  • 教育培训网站建设方案广告宣传费用一般多少
  • 计算机网站设计论文营销排名seo
  • 源码资源国内专业seo公司
  • 丽水微信网站建设报价免费精准客源
  • 广东建设工程中标公示网站google搜索引擎优化
  • 南宁老牌网站建设公司正版google下载
  • 网站做信用认证有必要吗微信朋友圈推广平台
  • 电子政务网站建设要求百度关键词规划师