Redis集群管理一(redis集群管理)

Redis集群管理一(redis集群管理)

浏览次数:
信息来源: 用户投稿
更新日期: 2025-11-05
文章简介

//集群(cluster)?CLUSTERINFO打印集群的状态信息?CLUSTERNODES???列出集群当前已知的所有节点(node),以及这些节点的相关信息? //节点(node)?CLUST

2025阿里云双十一服务器活动

//集群(cluster)?CLUSTERINFO打印集群的状态信息?CLUSTERNODES???列出集群当前已知的所有节点(node),以及这些节点的相关信息?

//节点(node)?CLUSTERMEET<ip><port>??将ip和port所指定的节点添加到集群当中,让它成为集群的一份子CLUSTERFORGET<node_id>??从集群中移除node_id指定的节点CLUSTERREPLICATE<node_id>将当前节点设置为node_id指定节点的从节点CLUSTERSAVECONFIG?将当前节点的配置信息手动保存到硬盘(nodes-port.conf)?CLUSTERSLAVES<master_node_id>??查询指定的master_node_id主节点有哪些从(slave)节点

//槽(slot)?CLUSTERADDSLOTS<slot>[slot...]?将一个或多个槽(slot)指派(assign)给当前节点CLUSTERDELSLOTS<slot>[slot...]?将一个或多个槽从当前节点移除CLUSTERFLUSHSLOTS?移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点CLUSTERSETSLOT<slot>NODE<node_id>???将当前节点指定的槽(slot)指派给node_id指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派CLUSTERSETSLOT<slot>MIGRATING<node_id>?将当前节点指定的槽(slot)迁移到node_id指定的节点中CLUSTERSETSLOT<slot>IMPORTING<node_id>?从node_id指定节点中的槽(slot)导入到当前节点CLUSTERSETSLOT<slot>STABLE???取消对当前节点指定槽(slot)的导入(import)或者迁移(migrate)CLUSTERSLOTS???查看槽(slot)在集群中的分配情况

//键(key)?CLUSTERKEYSLOT<key>???计算键key应该被分配在哪个槽上?CLUSTERCOUNTKEYSINSLOT<slot>???返回指定槽(slot)保存key的数量?CLUSTERGETKEYSINSLOT<slot><count>获取指定槽(slot)中count个key,如果指定槽中大于count个key,则只返回前cout个key,小于或为空,则返回最多数量的key?

以上命令是集群特有的,必须登录到redis集群才能使用。注释中提到的当前节点,指登录到集群中指定的节点。如:,当前登录的节点就是192.168.0.201:6379。更多集群管理命令请参考官网

shell>redis-cli-c-h192.168.0.201-p6379127.0.0.1:6379>clusternodes459dbcccc1e5be021f19efde794b9e84474c0c02192.168.0.202:16379slaveb6814c717080de33907e6f769e1fd8dc4fe53c380146833945977611connected06023f8283389ad5580c782797f49a5996c108b3192.168.0.201:6379myself,master-0010connected500-1125591179b96d9b8abce85fa7a5748aa9b4114f0b260192.168.0.202:16380slave06023f8283389ad5580c782797f49a5996c108b30146833946279710connectedef8a49e5242c791551f1b317d5039144e38acde6192.168.0.201:6380slave13567f6f8787d3aa3f4ef3abd15c2cc500a1469b014683394668198connectedb6814c717080de33907e6f769e1fd8dc4fe53c38192.168.0.201:6381master-0146833946581311connected0-49913567f6f8787d3aa3f4ef3abd15c2cc500a1469b192.168.0.202:16381master-014683394638028connected11256-16383

添加一对(一主一从)新的节点加入到集群当中:192.168.0.201:6382(Master)和192.168.0.201:6383(Slave),文中简称201:6381和201:16382。

1>添加master节点

Redis集群管理一,redis集群管理

参数说明:192.168.0.201:6382:新节点192.168.0.201:6379:可以是集群中的任意一个节点(这里以201:6379为例)

注意:1>新的节点必须开启了集群配置2>新的节点必须已启动如果不同时满足以上两点,将无法加入到集群中。成功加入集群后,会打印如下信息:

2>为master节点分配slot

当往Redis集群中存储一份数据时,redis根据key的hash值对16384(slot)取模,算出负责指定slot范围内的某个节点来存储这个key。集群在第一次创建的时候,会给每个master节点在16384个slot中平均分配相应的slot数量,而后面新加入的master节点默认是不会分配slot的。所以我们需要手动为新加入的节点分配一定范围的slot,以便集群在存取数据的时候,能够找到这个新加入的节点。

[root@localhostredis-3.2.0]#redis-cliclusternodes901cade1bc2703ef2bb4ff49466b38762346755d192.168.0.201:6382master-014683244221100connected06023f8283389ad5580c782797f49a5996c108b3192.168.0.201:6379myself,master-001connected0-5460...

sloat范围显示在节点状态(connected)后边,从上可以看出,新加入的节点201:6382是没有分配slot的,所以为空。而为201:6379节点分配了0-5460范围的slot。为新节点分配slot的原理是从其它主节点中负责的slot中,各移出一部份slot给新的节点。下面为201:6382分配slot:

shell>redis-trib.rbreshard192.168.0.201:6382

注意上图中红框部份:1>1000:为新的master节点分配1000个slot2>901cade1bc2703ef2bb4ff49466b38762346755d:接收1000个slot的master节点ID3>选择从哪些主节点移动slot到新加入的主节点中:*all:表示从集群中所有master节点中各移动一部份slot,凑够1000个slot为止*选择输入一个或多个master的node_id来从中移动,最后输入done完成选择4>yes:执行slot移动操作,输入no表示终止操作。下面看下新的集群节点及slot分布情况:

[root@localhostredis-3.2.0]#redis-cliclusternodes901cade1bc2703ef2bb4ff49466b38762346755d192.168.0.201:6382master-014683257739889connected0-3325461-579410923-11255459dbcccc1e5be021f19efde794b9e84474c0c02192.168.0.202:16379slaveb6814c717080de33907e6f769e1fd8dc4fe53c38014683257699687connected06023f8283389ad5580c782797f49a5996c108b3192.168.0.201:6379myself,master-001connected333-546091179b96d9b8abce85fa7a5748aa9b4114f0b260192.168.0.202:16380slave06023f8283389ad5580c782797f49a5996c108b3014683257754955connectedef8a49e5242c791551f1b317d5039144e38acde6192.168.0.201:6380slave13567f6f8787d3aa3f4ef3abd15c2cc500a1469b014683257729828connectedb6814c717080de33907e6f769e1fd8dc4fe53c38192.168.0.201:6381master-014683257719767connected5795-1092213567f6f8787d3aa3f4ef3abd15c2cc500a1469b192.168.0.202:16381master-014683257749928connected11256-16383

已经成功为201:6382节点分配了0-332、5461-5794、10923-11255范围的slot,可以看出redis从其它三个master节点中均匀的移动了一部份slot到201:6382中。

标签:
hadoop离线安装二(hadoop是离线处理平台吗)
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!