当前位置: 首页 > news >正文 哪个做网站公司好广告公司简介简短 news 2025/10/22 0:50:09 哪个做网站公司好,广告公司简介简短,做彩铃网站,百度官网下载安装免费有道无术#xff0c;术尚可求#xff0c;有术无道#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2 节点和节点2.1 集群拓扑2.2 集群总线协议2.3 流言协议2.4 心跳机制2.5 节点握… 有道无术术尚可求有术无道止于术。 本系列Redis 版本 7.2.5 源码地址https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2 节点和节点2.1 集群拓扑2.2 集群总线协议2.3 流言协议2.4 心跳机制2.5 节点握手 3. 客户端和节点3.1 RESP 协议3.2 重定向3.2.1 MOVED3.2.2 ASK3.2.3 客户端重定向处理 1. 概述 官方文档 在 Redis 集群中节点负责存储数据并管理集群的状态包括将键映射到正确的节点。集群节点还能够自动发现其他节点检测非工作节点并在需要时提升副本节点为主节点以便在发生故障时继续运行。 节点和节点之间节点和客户端之间都需要高效安全的通信机制确保整个集群能如期正常运行。 2 节点和节点 所有集群节点之间都是互相连接的并使用以下协议进行通信 集群总线协议节点之间的连接协议流言协议Gossip Protocol传播集群信息以便发现新节点、发送 Ping 数据包发布/订阅Pub/Sub 2.1 集群拓扑 Redis 集群是一个网状结构其中每个节点通过 TCP 连接与其他每个节点连接类似于网络中的网状拓扑结构 在一个包含 N 个节点的集群中每个节点有 N-1 个出站连接和 N-1 个入站连接。这些 TCP 连接始终保持活动状态不是按需创建的。当一个节点在集群总线上期待收到对 Pong 回复时在等待足够长时间标记节点为不可达之前会尝试通过从头重新连接来刷新与节点的连接。 网状拓扑结构具有较高的可靠性但其结构复杂实现起来费用较高不易管理和维护。但是 Redis 节点在正常情况下使用 Gossip 协议和配置更新机制以避免在节点之间交换过多的消息因此交换的消息数量不会呈指数增长。 2.2 集群总线协议 节点之间的通信完全通过集群总线和集群总线协议进行集群总线协议是一种二进制协议仅用于内部集群通信目前没有相关说明需要在源码中了解。 该协议需要使用集群总线端口进行连接。每个 Redis 集群节点除了监听 6379 运行端口外还会开放一个额外的 TCP 端口用于接收来自其他 Redis 集群节点的连接该端口的计算方式是将运行端口号加上 10000 。 例如如果一个 Redis 节点在 6379 端口上监听客户端连接并且在 redis.conf 中未添加 cluster-port 参数那么集群总线端口 16379 将会被打开。 可以通过配置文件中的 cluster-port 参数指定集群总线端口 cluster-port 20000在安装集群时需要注意节点默认使用 6379、16379 两个端口 2.3 流言协议 Gossip Protocol流言协议是一种高效的分布式信息交换协议通过模拟流行病传播的方式实现了节点间信息的快速传播和同步。其去中心化、可扩展性和容错性强的特点广泛应用于多个分布式系统。 Redis 集群中的节点会周期性地随机选择一些节点通过 Ping 将当前节点的信息传递过去。收到信息的节点也会使用同样的方式传播自己的节点信息。这个过程会持续进行直到信息被传播到集群中的每一个节点每个节点都会保存所有其他节点的信息。 2.4 心跳机制 Redis Cluster 会通过心跳检测迅速感知到节点故障并且在节点故障时自动进行恢复以确保数据在集群中的可用性。 Redis 集群节点不断地交换 Ping 和 Pong 数据包用于检测其他节点的存活状态。这两种数据包总称为心跳数据包它们具有相同的结构并且都携带重要的配置信息。 集群节点发送心跳的几种触发方式 每秒钟向几个随机节点发送 Ping尝试重新建立与其他节点的 TCP 连接以确保节点不会因为当前的 TCP 连接问题而被认为是不可达的向在 NODE_TIMEOUT 时间内没有发送过 Ping 的节点进行发送 心跳数据包 包含了一些通用的内容信息 节点 ID 节点创建时分配的全局唯一标识当前时期currentEpoch和配置时期configEpoch 发送节点的当前时期和配置时期字段用于解决配置冲突和故障转移节点标识 标识节点是从节点、主节点或其他节点。哈希槽位图 发送节点服务的哈希槽位图或者如果节点是副本则为其主节点服务的槽位图。发送者 TCP 数据端口 Redis 用于接受客户端命令的基本端口6379。集群总线端口 Redis 节点间通信使用的端口。发送者视角下的集群状态 表示发送节点对集群状态的视角可以是“down”或“ok”。 新加如节点时心跳数据包 还包含一些 Gossip 信息 新节点 ID 。新节点的 IP 地址和端口。新节点标识。 2.5 节点握手 集群节点之间始终通过集群总线端口保持连接新节点加入 Redis Cluster 时需要与集群中的其他节点进行握手以获取集群的拓扑信息和状态。节点之间会交换握手消息确认自身角色主节点、从节点或未分配节点和负责的槽分配情况。 节点握手的整个流程如下 任意主节点例如 A 上执行 CLUSTER MEET 命令新节点的 IP 地址例如 X 和端口号作为参数。A 和 X 进行握手操作以确认彼此的存在和状态。其他节点通过 Gossip 发现 X 节点并完成握手随着时间的推移集群中的所有节点都会通过 Gossip 协议知道新节点的存在并将其纳入集群的元数据中。 在 Redis Cluster 网状拓扑中加入节点集群能够自动发现其他节点最终会自动形成一个完整的链路。这种机制使集群更加健壮并确保了集群的灵活性和可扩展性。 3. 客户端和节点 3.1 RESP 协议 官方文档 Redis 客户端和服务端之间通过 RESP Redis Serialization Protocol 协议进行通信它是一个简单的二进制安全协议。Redis 1.2 引入了 RESP 协议的第一个版本。客户端通过创建到服务器端口的 TCP 连接默认端口为 6379连接到 Redis 服务端。 RESP 具有以下优点 易于实现协议的设计简洁明了便于开发者实现。快速解析协议格式高效可以迅速被解析减少通信延迟。人类可读尽管主要用于机器通信但协议格式也便于人类阅读和理解。 RESP 能够序列化不同的数据类型包括整数、字符串和数组并且还具有一个专门用于错误的类型。客户端向 Redis 服务器发送请求时请求以字符串数组的形式发送数组的内容包括要执行的命令及其参数。服务器的回复类型取决于具体的命令。 RESP 是二进制安全的并使用前缀长度来传输大量数据因此它不需要处理从一个进程传输到另一个进程的大量数据。这种设计使得数据传输更加高效和安全。 RESP仅用于客户端与服务器之间的通信集群使用不同的二进制协议在节点之间交换消息 3.2 重定向 由于集群节点不能代理请求因此客户端可能会使用重定向错误 -MOVED 和 -ASK 被重定向到其他节点。 理论上客户端可以自由地向集群中的所有节点发送请求并在需要时进行重定向因此客户端不需要持有集群的状态。但是缓存键和节点之间映射的客户端可以显著提高性能。 3.2.1 MOVED 集群节点会自动分配哈希槽节点内部也会维护其他所有节点和哈希槽的映射关系例如以下三个主节点 Redis 客户端可以随意的向集群中的任意一个节点发送查询命令例如在 192.168.56.101:6379 节点上执行插入、查询操作当前 key 的哈希槽编号为 1180 [rootlocalhost ~]# redis-cli -a cluster123456 -p 6379 127.0.0.1:6379 set aa bb 127.0.0.1:6379 cluster keyslot aa (integer) 1180 127.0.0.1:6379 get aa bb 如果在 192.168.56.103:6379 节点上执行查询操作由于该节点的哈希槽为 5461 - 10922 节点检查内部映射表时发现哈希槽编号为 1180 的 key 不属于该节点管理会向客户端回复一个 MOVED 错误 127.0.0.1:6379 get aa (error) MOVED 1180 192.168.56.101:6379MOVED 错误中包含了 key 的哈希槽编号以及能够处理该查询的集群节点客户端需要将查询重新发送到指定的节点。 一般客户端会自动进行重定向而且不会单独去请求某一个节点而是维护了所有节点并在内部维护了一个哈希槽到节点的映射对于开发者来说MOVED 重定向是无感知的。 注意这里需要使用 redis-cli 工具进行测试其他工具可能会自动重定向 此外还可以使用 redis-cli -c 设置自动重定向 [rootlocalhost ~]# redis-cli -a cluster123456 -p 6379 -c Warning: Using a password with -a or -u option on the command line interface may not be safe. 127.0.0.1:6379 get aa - Redirected to slot [1180] located at 192.168.56.101:6379 bb3.2.2 ASK Redis 集群进行伸缩扩容 / 缩容时会进行哈希槽的迁移当访问目标节点时数据可能已经迁移到新的节点中这时会产生 ASK 重定向。 在哈希槽的迁移过程中槽中对应的多个 Key 是分批次进行移动的而不是一次性的整体迁移因此迁移槽中的 Key 一部分在老的服务节点一部分在新的服务节点。当访问的 Key 正在发生迁移时ASK 仅指示将下一个查询重定下到指定节点。 和 MOVED 的区别 MOVED 适用于哈希槽永久由另一个节点服务接下来的查询应该尝试指定的节点。ASK 适用于哈希槽正在迁移指示仅将下一个查询发送到指定节点。 3.2.3 客户端重定向处理 为了保持高效处理能力Redis Cluster客户端会在本地维护当前哈希槽映射表但是这个映射表需要保持是最新的当客户端连接到错误的节点导致重定向时客户端可更新本地的哈希槽映射表。 客户端通常需要在以下两种情况下进行更新 在启动时初始化映射表收到 MOVED 重定向 推荐重新获取完整的映射表而不是更新变动的某一条数据这样更简单高效。客户端可以通过发出CLUSTER SLOTS命令来获取一个包含哈希槽范围及其对应节点的数组。 示例 127.0.0.1:7000 cluster slots 1) 1) (integer) 5461 # 哈希槽范围的开始2) (integer) 10922 # 哈希槽范围的结束3) 1) 127.0.0.1 # 主节点地址端口2) (integer) 70014) 1) 127.0.0.1 # 从节点地址端口2) (integer) 7004 2) 1) (integer) 02) (integer) 54603) 1) 127.0.0.12) (integer) 70004) 1) 127.0.0.12) (integer) 7003 3) 1) (integer) 109232) (integer) 163833) 1) 127.0.0.12) (integer) 70024) 1) 127.0.0.12) (integer) 7005 文章转载自: http://www.morning.qtkdn.cn.gov.cn.qtkdn.cn http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn http://www.morning.qbxdt.cn.gov.cn.qbxdt.cn http://www.morning.qdlnw.cn.gov.cn.qdlnw.cn http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn http://www.morning.wtrjq.cn.gov.cn.wtrjq.cn http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn http://www.morning.qnzk.cn.gov.cn.qnzk.cn http://www.morning.zsthg.cn.gov.cn.zsthg.cn http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn http://www.morning.yrgb.cn.gov.cn.yrgb.cn http://www.morning.rhkq.cn.gov.cn.rhkq.cn http://www.morning.qyglt.cn.gov.cn.qyglt.cn http://www.morning.fgrcd.cn.gov.cn.fgrcd.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.nqyfm.cn.gov.cn.nqyfm.cn http://www.morning.kflbf.cn.gov.cn.kflbf.cn http://www.morning.fssmx.com.gov.cn.fssmx.com http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn http://www.morning.rnxs.cn.gov.cn.rnxs.cn http://www.morning.rltsx.cn.gov.cn.rltsx.cn http://www.morning.wklrz.cn.gov.cn.wklrz.cn http://www.morning.lmyq.cn.gov.cn.lmyq.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.djpzg.cn.gov.cn.djpzg.cn http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn http://www.morning.prmbn.cn.gov.cn.prmbn.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.qwzpd.cn.gov.cn.qwzpd.cn http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn http://www.morning.bqts.cn.gov.cn.bqts.cn http://www.morning.wztnh.cn.gov.cn.wztnh.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.mwwnz.cn.gov.cn.mwwnz.cn http://www.morning.mtmph.cn.gov.cn.mtmph.cn http://www.morning.lcxdm.cn.gov.cn.lcxdm.cn http://www.morning.rfqk.cn.gov.cn.rfqk.cn http://www.morning.pigcamp.com.gov.cn.pigcamp.com http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn http://www.morning.krlsz.cn.gov.cn.krlsz.cn http://www.morning.yrdn.cn.gov.cn.yrdn.cn http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.fqssx.cn.gov.cn.fqssx.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.lmctj.cn.gov.cn.lmctj.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.tnhqr.cn.gov.cn.tnhqr.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn http://www.morning.zjrnq.cn.gov.cn.zjrnq.cn http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn http://www.morning.bkppb.cn.gov.cn.bkppb.cn http://www.morning.wnbpm.cn.gov.cn.wnbpm.cn http://www.morning.zkpwk.cn.gov.cn.zkpwk.cn http://www.morning.ndzhl.cn.gov.cn.ndzhl.cn http://www.morning.tznlz.cn.gov.cn.tznlz.cn http://www.morning.bqdgr.cn.gov.cn.bqdgr.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn http://www.morning.yltyr.cn.gov.cn.yltyr.cn http://www.morning.skbhl.cn.gov.cn.skbhl.cn http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn http://www.morning.ldqzz.cn.gov.cn.ldqzz.cn http://www.morning.nsppc.cn.gov.cn.nsppc.cn http://www.morning.frtb.cn.gov.cn.frtb.cn http://www.morning.rglp.cn.gov.cn.rglp.cn http://www.morning.ghccq.cn.gov.cn.ghccq.cn http://www.morning.gqjzp.cn.gov.cn.gqjzp.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn 查看全文 http://www.tj-hxxt.cn/news/238291.html 相关文章: 做涂鸦的网站wordpress发文章后显示两篇 vue 做pc网站可以吗重庆前十装修公司排名 衡阳市建设局网站网上购物平台怎么建立 网站后台数据处理编辑主要是做什么的啊网站开通微信支付收费 徐州网站运营有没有wordpress上的论坛 江西建设单位网站天津正规网站建设调试公司 虚拟网站免费注册如何建设网站安全 网站建设总结ppt如何做企业市场调研 电商网站建设包括哪些方面网站的建设特色 公司建设网站费用会计分录鼠标网站模板 网站开发入什么科目司法局网站建设 手机分销网站公司自己做的网站怎么传入外网 注册做网站的营业执照网站代码怎么改 芜湖网站建设芜湖在线app制作 网站地图案例网站数据模板 兴力网站建设可以做问卷挣钱的网站 微信订阅号做网站乘风专业建站 网站建设语seo查询价格 松江 网站建设公司原型设计网站 宁海哪里有做网站的软件项目管理工作内容 网站建设人员分工表百度收录好最快的网站 网站前后端的关系汕头网站设计公司 建站工具指北网站建设 犀牛 房地产行业网站开发展示用网站 企业服务网站怎么免费增加网站流量吗 企业网站建设目的意义南宁网站设计 网站建设自评报告制作公司网站的作用 长沙做网站哪家好wordpress删除主题介绍 免费的行情软件网站入口佛山网站建设开发团队 网站外链代发哪个软件是网页编辑软件