前面在Redis集群架构搭建详解博文中搭建了一个redis集群,这篇博文就是在那个redis集群基础上进行操作的。

一、添加新节点

  1. 在10.220.5.172上在新配置两个实例

①新增配置

# cd /redis/
# mkdir 6379 6380
# cp 26379/redis-26379.conf  6379/redis-6379.conf  && sed -i "s/26379/6379/g" 6379/redis-6379.conf
# cp 26380/redis-26380.conf  6380/redis-6380.conf  && sed -i "s/26380/6380/g" 6380/redis-6380.conf

②启动

# /root/redis-4.0.11/src/redis-server /redis/6380/redis-6380.conf
# /root/redis-4.0.11/src/redis-server /redis/6379/redis-6379.conf

③查看是否启动成功

# ss -tnl
State      Recv-Q Send-Q        Local Address:Port                       Peer Address:Port
LISTEN     0      128            10.220.5.172:16380                                 *:*
LISTEN     0      128            10.220.5.172:36380                                 *:*
LISTEN     0      128            10.220.5.172:6379                                  *:*
LISTEN     0      128            10.220.5.172:26379                                 *:*
LISTEN     0      128            10.220.5.172:6380                                  *:*
LISTEN     0      128            10.220.5.172:26380                                 *:*
LISTEN     0      128                       *:22                                    *:*
LISTEN     0      100               127.0.0.1:25                                    *:*
LISTEN     0      128            10.220.5.172:16379                                 *:*
LISTEN     0      128            10.220.5.172:36379                                 *:*
LISTEN     0      128                      :::22                                   :::*
LISTEN     0      100                     ::1:25                                   :::*
  1. 添加主节点

① 在10.220.5.173节点执行如下命令

# /root/redis-4.0.11/src/redis-trib.rb add-node 10.220.5.172:6379 10.220.5.171:16379说明:10.220.5.172:6379是新增节点,后面的可以是集群中任意一个旧节点>>> Adding node 10.220.5.172:6379 to cluster 10.220.5.171:16379
>>> Performing Cluster Check (using node 10.220.5.171:16379)
M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s)
M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s)
S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105
S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01
S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc
M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 10.220.5.172:6379 to make it join the cluster.
[OK] New node added correctly.

②检查一下是否加入成功

#  redis-4.0.11/src/redis-trib.rb  check 10.220.5.172:26379
>>> Performing Cluster Check (using node 10.220.5.172:26379)
M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s)
S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01
S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105
M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379slots: (0 slots) master0 additional replica(s)
M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s)
M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s)
S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
可以看到10.220.5.172:6379已经加入到了集群中并且还是主节点其id为:f523db5333150607a347fa9e55a282bcbe67b5aa
  1. 添加从节点

①在10.220.5.173节点执行如下命令

# /root/redis-4.0.11/src/redis-trib.rb  add-node --slave --master-id f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6380 10.220.5.171:16380说明:--slave,表示添加的是从节点
--master-id,后面跟的是主节点的node-d这里是签名上一步添加的那个6379的node id
10.220.5.172:6380,是即将添加入集群的节点,最后面的是原集群的任意一个节点即可>>> Adding node 10.220.5.172:6380 to cluster 10.220.5.171:16380
>>> Performing Cluster Check (using node 10.220.5.171:16380)
S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc
M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:5461-10922 (5462 slots) master1 additional replica(s)
S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01
S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105
M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:0-5460 (5461 slots) master1 additional replica(s)
M: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:10923-16383 (5461 slots) master1 additional replica(s)
M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379slots: (0 slots) master0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 10.220.5.172:6380 to make it join the cluster.
Waiting for the cluster to join.......
>>> Configure node as replica of 10.220.5.172:6379.
[OK] New node added correctly.
  1. 重新分配slot

新增加的节点是没有slots的M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379 slots: (0 slots) master主节点没有slots存取数据的时候就不会被选中,为其分配slots的方式有两种:

  • 所有节点的slots收回重新分配
  • 从某个节点抽取部分slots分配给新节点

①在10.220.5.173节点执行下面命令

# /root/redis-4.0.11/src/redis-trib.rb reshard 10.220.5.172:6379
How many slots do you want to move (from 1 to 16384)? 1000  >>>设置slot个数
What is the receiving node ID?  f523db5333150607a347fa9e55a282bcbe67b5aa  >>>新节点的node  id 这里就是那个新添加的10.220.5.172:6379的node id
Source node #1:all >>>表示全部节点重新分配槽,此处输入某节点的node id的话表示从某个节点抽取slots分配给新节点
Do you want to proceed with the proposed reshard plan (yes/no)? yes  >>>确认重新分配
  1. 查看一下集群的状态
 redis-4.0.11/src/redis-trib.rb  check 10.220.5.172:26379
>>> Performing Cluster Check (using node 10.220.5.172:26379)
M: 93a37f72f33752779183d70835a101c086bbad01 10.220.5.172:26379slots:6129-10922 (4794 slots) master1 additional replica(s)
S: 76b5218ca0729fbe305c65a8a4aefae4462a58fc 10.220.5.172:6380slots: (0 slots) slavereplicates f523db5333150607a347fa9e55a282bcbe67b5aa
S: 8540a124e3a876ad2357d6bd10e09091612b3291 10.220.5.173:36380slots: (0 slots) slavereplicates 93a37f72f33752779183d70835a101c086bbad01
S: 2c978644384445bf1bdfd3ed2b585f949f574f63 10.220.5.172:26380slots: (0 slots) slavereplicates 56d2348f3eb66f669405b8064fb8c068cca94105
M: f523db5333150607a347fa9e55a282bcbe67b5aa 10.220.5.172:6379slots:0-665,5461-6128,10923-11588 (2000 slots) master1 additional replica(s)可以看到我们新加入的节点已经被分配了slots,我这里为了演示第四步做了两次所以我这里是有2000个slotsM: 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc 10.220.5.173:36379slots:11589-16383 (4795 slots) master1 additional replica(s)
M: 56d2348f3eb66f669405b8064fb8c068cca94105 10.220.5.171:16379slots:666-5460 (4795 slots) master1 additional replica(s)
S: 35c6cc6fb84b3c1a76e4f225bb8477f519abb559 10.220.5.171:16380slots: (0 slots) slavereplicates 66d902b3ad7b4342720f5aeb98dfffa2b9c013fc
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

二、删除节点

删除从节点,10.220.5.172:6380

# /root/redis-4.0.11/src/redis-trib.rb del-node 10.220.5.171:16379 76b5218ca0729fbe305c65a8a4aefae4462a58fc说明:
10.220.5.171:16379,集群入口76b5218ca0729fbe305c65a8a4aefae4462a58fc,要删除的10.220.5.176:6380节点的node id>>> Removing node 76b5218ca0729fbe305c65a8a4aefae4462a58fc from cluster 10.220.5.172:6380
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

删除主节点,10.220.5.172:6379
如果主节点有从节点,将从节点转移到其他主节点,如果主节点有slot,去掉分配的slot然后再删除主节点

# /root/redis-4.0.11/src/redis-trib.rb reshard 10.220.5.172:6379
How many slots do you want to move (from 1 to 16384)? 1000  >>>这里写被删除的master的全部slot数量
What is the receiving node ID? 56d2348f3eb66f669405b8064fb8c068cca94105  >>>接收被删除节点的slot的master的node id
Source node #1:f523db5333150607a347fa9e55a282bcbe67b5aa >>>被删除的master的node-id
Source node #2:done
Do you want to proceed with the proposed reshard plan (yes/no)? yes  >>>是否希望取消slot以后,reshard#删除节点
# /root/redis-4.0.11/src/redis-trib.rb del-node 10.220.5.171:16379 f523db5333150607a347fa9e55a282bcbe67b5aa
>>> Removing node f523db5333150607a347fa9e55a282bcbe67b5aa from cluster 10.220.5.171:16379
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

做到这里开篇新添加的一个master和一个slave节点都被删除了,也就是回到这篇博文开始没有添加节点的状态了。

Redis cluster日常管理【二】相关推荐

  1. Redis cluster日常管理【一】

    一.管理操作 集群 cluster info:打印集群的信息 cluster nodes:列出集群当前已知的所有节点,以及节点的相关信息 cluster meet<ip><port& ...

  2. Redis Cluster日常操作命令梳理

    在之前的一篇文章已经介绍了Redis Cluster及其部署,下面说下Redis Cluster日常操作命令: 一.以下命令是Redis Cluster集群所独有的,执行下面命令需要先登录redis: ...

  3. Redis Cluster部署、管理和测试

    背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...

  4. redis05_springboot+mybatis整合redis cluster

    一.springboot+mybatis整合redis cluster整合流程图 二.springboot+mybatis整合redis cluster具体实现 2.1   创建springboot+ ...

  5. StackExchange.Redis 官方文档(二) Configuration

    配置 有多种方式可以配置redis,StackExchange.Redis提供了一个丰富的配置模型,在执行Connect (or ConnectAsync) 时被调用: var conn = Conn ...

  6. python连接redis集群如何释放内存_python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  7. redis cluster管理工具redis-trib.rb详解

    redis cluster管理工具redis-trib.rb详解 redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集 ...

  8. Redis Cluster 集群管理维护

    2.5:Redis Cluster 管理维护 2.5.1:动态添加节点 增加 Redis Node,需要与之前的 Redis 版本相同.配置一致: 添加一个 Redis Node 需要启动两台 Red ...

  9. vcs oracle 双机,赛门铁克VCS(Veritas Cluster Server)双机日常管理,vcsveritas

    赛门铁克VCS(Veritas Cluster Server)双机日常管理,vcsveritas 1. 查看VCS版本及License信息 PSDB01:~ # vxlicrep Symantec L ...

最新文章

  1. IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
  2. C# DES 加密 解密
  3. mysql的锁定机制_MySQL锁定机制
  4. STM32迷你板UCOSII系统移植
  5. 数据可视化应用案例:从面积到人口,再到经济、房贷等等方面透析重庆市
  6. VM虚拟机下安装CentOS_6.5_x64
  7. “面试不败计划”: java语言基础面试题(二)
  8. tornado框架的get方法传递参数
  9. fest556_AssertJ Fest Hamcrest
  10. python如何改变入参的值_从事数据分析3年后,发现用python入门数据分析这三本书必看!...
  11. Spring Cloud 服务注册中心Eureka
  12. MySql计算百分比
  13. php抛出异常Exception和\Exception使用区别
  14. Lightroom Classic教程:如何显示堆叠?
  15. gdb 查看是否 栈溢出_[原理分析]Linux下的栈溢出案例分析-GDB调试操练[1]
  16. JDBC与数据库连接池
  17. 微信小程序提供 模板:template
  18. mongovue mysql_MongoDB 客户端 MongoVue(转)
  19. 2021普华集团数字经济年度盛典在三亚盛大举行
  20. 通过冥想解除困意,提升精神

热门文章

  1. 使用代理网络配置maven,显示导入失败的原因
  2. struts2 ajax请求发现执行action两次原因
  3. 周五:IPC连接及远程执行
  4. Qt访问SQLite数据库
  5. 天马行空W:在C++中调用DLL中的函数
  6. Al芯片前景看好,市场规模在2023年将达343亿美元
  7. 中班游戏电子计算机,计算器中班歌唱活动教案
  8. 计算机学院的运动会介绍,敢于拼搏 超越自我 --计算机学院校运动会动员大会召开...
  9. java 有序列表_关于算法:在Java中为列表列表生成唯一的有序非重复组合
  10. power python_在 Power BI Desktop 中运行 Python 脚本