阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Redis 集群节点操作

399次阅读
没有评论

共计 9855 个字符,预计需要花费 25 分钟才能阅读完成。

Redis 集群操作

当前 Redis Cluster 状态:

$ pwd
/home/zxm/BD/redis-cluster
$ ls -l
总用量 32
drwxrwxr-x. 2 zxm zxm 4096 824 20:15 7000
drwxrwxr-x. 2 zxm zxm 4096 824 20:22 7001
drwxrwxr-x. 2 zxm zxm 4096 824 17:32 7002
drwxrwxr-x. 2 zxm zxm 4096 824 20:36 7003
drwxrwxr-x. 2 zxm zxm 4096 824 17:32 7004
drwxrwxr-x. 2 zxm zxm 4096 824 20:23 7005

集群中各个节点状态:

$ ./redis-trib.rb check 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: ca33b3d7a60f8df7b74473f86c11f84df609fa45 192.168.174.3:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 8f26d8a386853e338e7176c33e66166b5f835175 192.168.174.3:7003
   slots: (0 slots) slave
   replicates 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
S: 46f81794cfcf6fbf10fcf18c44f137f446f28be9 192.168.174.3:7005
   slots: (0 slots) slave
   replicates ca33b3d7a60f8df7b74473f86c11f84df609fa45
M: a2e08eda093f5b962881f309b8a3b9d5961e6aa8 192.168.174.3:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 43d98665d41381c89d45c6f69bf8a2622b7b9dc3 192.168.174.3:7004
   slots: (0 slots) slave
   replicates a2e08eda093f5b962881f309b8a3b9d5961e6aa8
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

Redis 集群 Resharding

resharding 步骤:

1) 使用命令开启 reshard 命令

./redis-trib.rb reshard host:port

2) 指定需要重新 reshard 的 slots 个数

How many slots do you want to move (from 1 to 16384)? 1000

3) 指定需要接收的节点 ID

What is the receiving node ID? 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c

4) 指定需要重新 shard 的节点,输入 done 开始 reshard

Source node #1:ca33b3d7a60f8df7b74473f86c11f84df609fa45
Source node #2:done

具体操作流程如下:

$ ./redis-trib.rb reshard 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
M: ca33b3d7a60f8df7b74473f86c11f84df609fa45 192.168.174.3:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 8f26d8a386853e338e7176c33e66166b5f835175 192.168.174.3:7003
   slots: (0 slots) slave
   replicates 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
S: 46f81794cfcf6fbf10fcf18c44f137f446f28be9 192.168.174.3:7005
   slots: (0 slots) slave
   replicates ca33b3d7a60f8df7b74473f86c11f84df609fa45
M: a2e08eda093f5b962881f309b8a3b9d5961e6aa8 192.168.174.3:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 43d98665d41381c89d45c6f69bf8a2622b7b9dc3 192.168.174.3:7004
   slots: (0 slots) slave
   replicates a2e08eda093f5b962881f309b8a3b9d5961e6aa8
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:ca33b3d7a60f8df7b74473f86c11f84df609fa45
Source node #2:done

Ready to move 1000 slots.
  Source nodes:
    M: ca33b3d7a60f8df7b74473f86c11f84df609fa45 192.168.174.3:7002
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
  Destination node:
    M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
  Resharding plan:
    Moving slot 10923 from ca33b3d7a60f8df7b74473f86c11f84df609fa45
    ... ...
    Moving slot 11921 from ca33b3d7a60f8df7b74473f86c11f84df609fa45
    Moving slot 11922 from ca33b3d7a60f8df7b74473f86c11f84df609fa45
Do you want to proceed with the proposed reshard plan (yes/no)?yes
Moving slot 10923 from 192.168.174.3:7002 to 192.168.174.3:7000:
Moving slot 10924 from 192.168.174.3:7002 to 192.168.174.3:7000:
... ...
Moving slot 11921 from 192.168.174.3:7002 to 192.168.174.3:7000:
Moving slot 11922 from 192.168.174.3:7002 to 192.168.174.3:7000:

重新 sharding 后集群中各个节点状态:

$ ./redis-trib.rb check 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460,10923-11922 (6461 slots) master
   1 additional replica(s)
M: ca33b3d7a60f8df7b74473f86c11f84df609fa45 192.168.174.3:7002
   slots:11923-16383 (4461 slots) master
   1 additional replica(s)
S: 8f26d8a386853e338e7176c33e66166b5f835175 192.168.174.3:7003
   slots: (0 slots) slave
   replicates 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
S: 46f81794cfcf6fbf10fcf18c44f137f446f28be9 192.168.174.3:7005
   slots: (0 slots) slave
   replicates ca33b3d7a60f8df7b74473f86c11f84df609fa45
M: a2e08eda093f5b962881f309b8a3b9d5961e6aa8 192.168.174.3:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 43d98665d41381c89d45c6f69bf8a2622b7b9dc3 192.168.174.3:7004
   slots: (0 slots) slave
   replicates a2e08eda093f5b962881f309b8a3b9d5961e6aa8
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

新增节点

1) 添加节点

添加 redis 实例,端口为 7006

$ cp -r 7005 7006

修改 7006 目录中 redis-cluster.conf 文件中的参数:

$ cat 7006/redis-cluster.conf
bind 192.168.174.3
port 7006
daemonize yes
logfile "/home/zxm/BD/redis-cluster/7006/redis.log"
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

启动 redis 实例节点

$ cd 7006
$ redis-server redis-cluster.conf

添加 Salve 节点

方式一:
1)将新的节点添加到集群中

 $ ./redis-trib.rb add-node 192.168.174.3:7006 192.168.174.3:7000
 >>> Adding node 192.168.174.3:7006 to cluster 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
    ... ...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.174.3:7006 to make it join the cluster.
[OK] New node added correctly.

2) 进入 redis 命令行, 并查看集群状态

$ redis-cli -c -h 192.168.174.3 -p 7006
192.168.174.3:7006> cluster nodes   
... ... 
fca935760ac28db5cbdc5396b5a326a85e4f8760 192.168.174.3:7006 myself,master - 0 0 0 connected
7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000 master - 0 1472046744344 7 connected 0-5460 10923-11922
... ...

可以看到默认将新添加的节点作为 master

3)将新节点修改为 7000 节点的 slave,并查看修改后的集群状态

192.168.174.3:7006> cluster replicate 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
OK
192.168.174.3:7006> cluster nodes
... ...
fca935760ac28db5cbdc5396b5a326a85e4f8760 192.168.174.3:7006 myself,slave 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 0 0 0 connected
7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000 master - 0 1472047082185 7 connected 0-5460 10923-11922
... ...

方式二:

1) 将新节点直接作为 7000 节点的 slave 添加到集群中

$ ./redis-trib.rb add-node --slave --master-id 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7006 192.168.174.3:7000
>>> Adding node 192.168.174.3:7006 to cluster 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
... ...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.174.3:7006 to make it join the cluster.
Waiting for the cluster to join.
>>> Configure node as replica of 192.168.174.3:7000.
[OK] New node added correctly.

2) 查看集群状态

$ ./redis-trib.rb check 192.168.174.3:7001
>>> Performing Cluster Check (using node 192.168.174.3:7001)
... ...
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460,10923-11922 (6461 slots) master
   2 additional replica(s)
S: 1a0d5c686108182ab2ea7ca136c8e726d077171e 192.168.174.3:7006
   slots: (0 slots) slave
   replicates 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
... ...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

删除节点

删除 7000 节点,并将 7000 端口节点上的 slots 分配到 7006 上

1) 将 7006 节点作为 master 节点添加到集群中,并察看集群状态:

[zxm@node1 src]$ ./redis-trib.rb check 192.168.174.3:7001
>>> Performing Cluster Check (using node 192.168.174.3:7001)
... ... 
M: d7a7e6e57827d94803a139f6f36425276c9e1019 192.168.174.3:7006
   slots: (0 slots) master
   0 additional replica(s)
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460,10923-11922 (6461 slots) master
   1 additional replica(s)
... ...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

2) 对集群进行 reshard 操作,将 7000 节点上的所有 slots 转移到 7006 节点上

[zxm@node1 src]$ ./redis-trib.rb reshard 192.168.174.3:7000
>>> Performing Cluster Check (using node 192.168.174.3:7000)
M: 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c 192.168.174.3:7000
   slots:0-5460,10923-11922 (6461 slots) master
   1 additional replica(s)
... ...
M: d7a7e6e57827d94803a139f6f36425276c9e1019 192.168.174.3:7006
   slots: (0 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 6461
What is the receiving node ID? d7a7e6e57827d94803a139f6f36425276c9e1019
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
Source node #2:done

3) 查看集群状态

$ ./redis-trib.rb check 192.168.174.3:7001
>>> Performing Cluster Check (using node 192.168.174.3:7001)
... ...
M: d7a7e6e57827d94803a139f6f36425276c9e1019 192.168.174.3:7006
   slots:0-5460,10923-11922 (6461 slots) master
   1 additional replica(s)
... ...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

4) 删除 7000 节点

$ ./redis-trib.rb del-node 192.168.174.3:7000 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c
>>> Removing node 7f12512f46ce8e0bac2fffcb7ca05c9941d2864c from cluster 192.168.174.3:7000
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

⚠️删除 master 节点时,该节点上 slots 必须为零

下面关于 Redis 的文章您也可能喜欢,不妨参考下:

Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm

CentOS 7 下 Redis 的安装与配置 http://www.linuxidc.com/Linux/2017-02/140363.htm

Ubuntu 14.04 安装 Redis 与简单配置 http://www.linuxidc.com/Linux/2017-01/139075.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

Redis 单机 & 集群离线安装部署 http://www.linuxidc.com/Linux/2017-03/141403.htm

CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm

Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm

Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm

Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm

Redis 热迁移实战总结  http://www.linuxidc.com/Linux/2017-02/141083.htm

Redis3.0 配置文件详解  http://www.linuxidc.com/Linux/2017-03/141369.htm

Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141404.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计9855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7964542
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...