Redis6集群缩容

2024-03-13 17:50
文章标签 集群 redis6 缩容

本文主要是介绍Redis6集群缩容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Redis集群缩容有几种情况,

1,如果是删除故障主节点,通常故障的主节会先自动切换为从节点,再进行删除;

2, 如果是删除从节点,先为主节点添加新的从之后,再将其删除;

3, 如果是要删除整个主从节点,一般先删从,然后迁移slot,最后再删除主;

当前集群架构 4主4从:

127.0.0.1:8000> cluster nodes
e9aac3ea026f8b5b14267861021a282103671a9c 127.0.0.1:8003@18003 master - 0 1626234271000 18 connected 0-1365 5462-6826 10923-12287
e4ec27a4f61c66131faebab76d0c33c38fb5695c 127.0.0.1:8100@18100 slave 25d25af226ac55e9c03723288c20f53520420767 0 1626234272521 16 connected
68507c82e45915e6a257afbfc2626c2424684879 127.0.0.1:8001@18001 master - 0 1626234271517 14 connected 6827-10922
89609f9d318bbca243c622195dcffb0c4c739c21 127.0.0.1:8103@18103 slave e9aac3ea026f8b5b14267861021a282103671a9c 0 1626234269000 18 connected
25d25af226ac55e9c03723288c20f53520420767 127.0.0.1:8000@18000 myself,master - 0 1626234269000 16 connected 1366-5461
e4df1b413eb5731f4de442e3e38a14612dc65700 127.0.0.1:8102@18102 slave 3db06c21c6dea8701fadbebfebf1aa92e5b13037 0 1626234272000 12 connected
30bb3d720a0c7dad6aed79f17ab33313246a0629 127.0.0.1:8101@18101 slave 68507c82e45915e6a257afbfc2626c2424684879 0 1626234268000 14 connected
3db06c21c6dea8701fadbebfebf1aa92e5b13037 127.0.0.1:8002@18002 master - 0 1626234270514 12 connected 12288-16383

我希望删除127.0.0.1:8003 和127.0.0.1:8103;

首先先删除slave 127.0.0.1:8103;

[root@A01-R05-B308E3-I114-93 ~]# redis-cli  --cluster del-node 127.0.0.1:8103 89609f9d318bbca243c622195dcffb0c4c739c21
>>> Removing node 89609f9d318bbca243c622195dcffb0c4c739c21 from cluster 127.0.0.1:8103
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.

然后重新分配slot

我希望删除节点 127.0.0.1:8003, 含有slot: 0-1365 5462-6826 10923-12287

需要进行三次reshard

第一次: 移动  0-1365 到 127.0.0.1:8000

第二次: 移动 5462-6826 到 127.0.0.1:8001

第三次: 移动 10923-12287 到 127.0.0.1:8002

执行如下: 

[root@XXX ~]# redis-cli  --cluster reshard 127.0.0.1:8000
>>> Performing Cluster Check (using node 127.0.0.1:8000)
M: 25d25af226ac55e9c03723288c20f53520420767 127.0.0.1:8000slots:[1366-5461] (4096 slots) master1 additional replica(s)
M: e9aac3ea026f8b5b14267861021a282103671a9c 127.0.0.1:8003slots:[0-1365],[5462-6826],[10923-12287] (4096 slots) master
S: e4ec27a4f61c66131faebab76d0c33c38fb5695c 127.0.0.1:8100slots: (0 slots) slavereplicates 25d25af226ac55e9c03723288c20f53520420767
M: 68507c82e45915e6a257afbfc2626c2424684879 127.0.0.1:8001slots:[6827-10922] (4096 slots) master1 additional replica(s)
S: e4df1b413eb5731f4de442e3e38a14612dc65700 127.0.0.1:8102slots: (0 slots) slavereplicates 3db06c21c6dea8701fadbebfebf1aa92e5b13037
S: 30bb3d720a0c7dad6aed79f17ab33313246a0629 127.0.0.1:8101slots: (0 slots) slavereplicates 68507c82e45915e6a257afbfc2626c2424684879
M: 3db06c21c6dea8701fadbebfebf1aa92e5b13037 127.0.0.1:8002slots:[12288-16383] (4096 slots) master1 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)? 1366
What is the receiving node ID? 25d25af226ac55e9c03723288c20f53520420767
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: e9aac3ea026f8b5b14267861021a282103671a9c
Source node #2: doneReady to move 1366 slots.Source nodes:M: e9aac3ea026f8b5b14267861021a282103671a9c 127.0.0.1:8003slots:[0-1365],[5462-6826],[10923-12287] (4096 slots) masterDestination node:M: 25d25af226ac55e9c03723288c20f53520420767 127.0.0.1:8000slots:[1366-5461] (4096 slots) master1 additional replica(s)Resharding plan:Moving slot 0 from e9aac3ea026f8b5b14267861021a282103671a9cMoving slot 1 from e9aac3ea026f8b5b14267861021a282103671a9cMoving slot 2 from e9aac3ea026f8b5b14267861021a282103671a9cMoving slot 3 from e9aac3ea026f8b5b14267861021a282103671a9cMoving slot 4 from e9aac3ea026f8b5b14267861021a282103671a9c

迁移完毕之后的slot分布

此时127.0.0.1:8003上没有slot了,可以进行删除;

 

[root@XXX ~]# redis-cli  --cluster del-node 127.0.0.1:8003 e9aac3ea026f8b5b14267861021a282103671a9c
>>> Removing node e9aac3ea026f8b5b14267861021a282103671a9c from cluster 127.0.0.1:8003
>>> Sending CLUSTER FORGET messages to the cluster...
>>> Sending CLUSTER RESET SOFT to the deleted node.

查看当前slots分布,三主三从

127.0.0.1:8000> cluster slots
1) 1) (integer) 02) (integer) 54613) 1) "127.0.0.1"2) (integer) 80003) "25d25af226ac55e9c03723288c20f53520420767"4) 1) "127.0.0.1"2) (integer) 81003) "e4ec27a4f61c66131faebab76d0c33c38fb5695c"
2) 1) (integer) 54622) (integer) 109223) 1) "127.0.0.1"2) (integer) 80013) "68507c82e45915e6a257afbfc2626c2424684879"4) 1) "127.0.0.1"2) (integer) 81013) "30bb3d720a0c7dad6aed79f17ab33313246a0629"
3) 1) (integer) 109232) (integer) 163833) 1) "127.0.0.1"2) (integer) 80023) "3db06c21c6dea8701fadbebfebf1aa92e5b13037"4) 1) "127.0.0.1"2) (integer) 81023) "e4df1b413eb5731f4de442e3e38a14612dc65700"
127.0.0.1:8000> 

这篇关于Redis6集群缩容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805689

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

kubernetes集群部署Zabbix监控平台

一、zabbix介绍 1.zabbix简介 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件。可以监视各种系统与设备的参数,保障服务器及设备的安全运营。 2.zabbix特点 (1)安装与配置简单。 (2)可视化web管理界面。 (3)免费开源。 (4)支持中文。 (5)自动发现。 (6)分布式监控。 (7)实时绘图。 3.zabbix的主要功能

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软

用Cri-O,Sealos CLI,Kubeadm方式部署K8s高可用集群

3.6 Cri-O方式部署K8s集群 注意:基于Kubernetes基础环境 3.6.1 所有节点安装配置cri-o [root@k8s-all ~]# VERSION=1.28[root@k8s-all ~]# curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensu