Redis集群动态增加和删除节点
一、添加节点
1、首先将需要添加的节点启动:
这里启动redis6383.conf和redis6393.conf两个节点
查看原有节点: 
3个主节点所对应的哈希槽(hash slot)
myself表示当前连接的节点
2、执行以下命令,将新节点添加到集群中
../redis-trib.rb add-node 192.168.230.129:6383 192.168.230.129:6380
备注:192.168.42.111:6383 是新的主节点
192.168.42.111:6380 是原存在的任一主节点

查看刚才新增的节点 
3、增加一个从节点,执行以下命令
../redis-trib.rb add-node --slave --master-id 863203beac4e9e1fd85b218fc388f8b8ac9d2218 192.168.230.129:6393 192.168.230.129:6380
注释:
--slave 表示添加的是从节点
--master-id 863203beac4e9e1fd85b218fc388f8b8ac9d2218 主节点的node id,在这里是前面新添加的6383的node id
192.168.10.220:6393 新节点
192.168.10.219:6380 集群任一个旧节点 
查看节点情况,可看见从节点已添加

但是,其主节点也就是6383的哈希槽为空,需要重新分配槽,执行命令:
../redis-trib.rb reshard 192.168.230.129:6380
注释: 192.168.230.129:6380 集群任一个旧节点

然后再输入yes,redis集群就开始分配哈希槽了.....
至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态
可看到已分配

二、删除节点
1、删除从节点
删除从节点,直接使用以下命令即可
../redis-trib.rb del-node 192.168.230.129:6393 05945dcae79aca1425f68ca95f2aaf4d44b2167a
注释:192.168.230.129:6393 节点地址
05945dcae79aca1425f68ca95f2aaf4d44b2167a 节点node_id

2、删除主节点
因为主节点含有槽数,所以,首先要把节点中的哈希槽转移到其他节点中,执行命令
../redis-trib.rb reshard 192.168.230.129:6380
注:192.168.230.129:6380 集群中任一主节点 
然后再输入yes,等待转移完成......
查看节点情况

最后,使用以下命令,将节点删除
../redis-trib.rb del-node 192.168.230.129:6383 863203beac4e9e1fd85b218fc388f8b8ac9d2218
三、为主节点添加从节点
1.首先将新节点添加到集群中,使用命令
../redis-trib.rb add-node 192.168.230.129:6383 192.168.230.129:6380
2.执行以下命令,将添加至某个主节点
../redis-cli -c -h 192.168.230.129 -p 6383 cluster replicate 52f6a45a1e968ab150a50127f29e9f0b3efbae9c
注:后面的node_id为要添加主节点的ID
3.使用下面命令来确认一下192.168.230.129:6383是否已经成为192.168.230.129:6380的从节点
../redis-cli -c -h 192.168.230.129 -p 6380 cluster nodes | grep slave | grep 52f6a45a1e968ab150a50127f29e9f0b3efbae9c
可看到6380的两个从节点:

查看节点之间的关系

Redis集群动态增加和删除节点的更多相关文章
- adoop集群动态添加和删除节点
hadoop集群动态添加和删除节点说明 上篇博客我已经安装了Hadoop集群(hadoop集群的安装步骤和配置),现在写这个博客我将在之前的基础上进行节点的添加的删除. 首先将启动四台机器(一主三从) ...
- Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)
不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...
- centos6搭建redis集群搭建(单机多节点)
一.安装redis 1.安装gcc环境 yum install gcc-c++ 2.下载源码包并解压 wget http://download.redis.io/releases/redis-3.2. ...
- redis学习五,redis集群搭建及添加主从节点
redis集群 java架构师项目实战,高并发集群分布式,大数据高可用,视频教程 在redis3.0之前,出现了sentinel工具来监控各个Master的状态(可以看上一篇博客).如果Master异 ...
- Java连接redis集群操作存储、删除以及获取值
pom文件添加: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> &l ...
- redis集群扩容(添加新节点)
一.创建节点(接上文) 1.在H1服务器/root/soft目录下创建7002目录 2.将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口 3.进入 redis-5.0. ...
- hdfs以及hbase动态增加和删除节点
一个知乎上的问题:Hbase的Region server和hadoop的datanode是否可以部署在一台服务器上?如果是的话,二者是否是一对一的关系?部署在同一台服务器上,可以减少数据跨网络传输的流 ...
- 基于twemproxy的redis集群部署
一.系统及软件版本 操作系统:CentOS Linux release 7.3.1611 (Core) 内核版本:3.10.0-514.el7.x86_64 redis版本:3.2.8 twempro ...
- Redis集群搭建,伪分布式集群,即一台服务器6个redis节点
Redis集群搭建,伪分布式集群,即一台服务器6个redis节点 一.Redis Cluster(Redis集群)简介 集群搭建需要的环境 二.搭建集群 2.1Redis的安装 2.2搭建6台redi ...
随机推荐
- [leetcode]187. Repeated DNA Sequences寻找DNA中重复出现的子串
很重要的一道题 题型适合在面试的时候考 位操作和哈希表结合 public List<String> findRepeatedDnaSequences(String s) { /* 寻找出现 ...
- ESP32 BLE蓝牙 微信小程序通信发送大于20字符数据
由于微信小程序只支持BLE每次发送数据不大于20个字节,ESP32则有经典蓝牙.低功耗蓝牙两种模式. 要解决发送数据大于20个字节的问题,最简单实用的方式就是分包发送.如下图所示: 1.什么起始字符和 ...
- SQL语句实现增删改查
查询语句SELECT *FROM mydriect WHERE id=1; 删除语句DELETE FROM mydriect WHERE id=1; 修改语句UPDATE mydriect SET 自 ...
- Spring IOC 笔记
什么是IOC与DI IOC(inversion of control) 它描述的其实是一种面向对象编程中的设计原则,用来降低代码之间的耦合度, 而DI(dependency Injection)依赖注 ...
- CSS解析
CSS(层叠样式表) CSS层叠样式表(Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. ...
- linux 怎么样复制文件夹内所有文件到另一个文件夹?
cp -Rf /home/user1/* /root/temp/将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身.即格式为:cp -Rf 原路径/ 目的 ...
- ThinkPHP的url简化
TP的url请求简化 下面是apache的配置过程,可以参考: 1. httpd.conf 配置文件中加载了mod_rewrite.so模块 2. AllowOverride ...
- NAS基础知识
一.什么是NAS 1.NAS的定义 NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为"网络存储器&qu ...
- 一道有趣的golang排错题
很久没写博客了,不得不说go语言爱好者周刊是个宝贝,本来想随便看看打发时间的,没想到一下子给了我久违的灵感. go语言爱好者周刊78期出了一道非常有意思的题目. 我们来看看题目.先给出如下的代码: p ...
- qmake奇淫技巧之字符串宏定义
阅读本文大概需要3.3分钟 我们平时在软件开发过程中需要定义一些宏,以便在代码中调用,这样每次不需要修改代码,只需要修改外部编译命令就可以得到想要的参数,非常方便 比如我们想在软件介绍中显示软件版本, ...