redis集群扩容(添加新节点)
一、创建节点(接上文)
1、在H1服务器/root/soft目录下创建7002目录
2、将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口
3、进入 redis-5.0.5 目录下,执行启动命令
./src/redis-server ../7002/redis.conf
4、进入H2创建7002的salve,步骤与前三个步骤一样
二、添加主节点
1、第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口;先后执行以下命令:
./src/redis-cli --cluster add-node 172.26.237.83:7002 172.26.237.83:7000 -a 0123456789
./src/redis-cli --cluster add-node 172.26.237.84:7002 172.26.237.83:7000 -a 0123456789

2、在H1进入redis客户查看集群的健康状态和节点状态

三、分配哈希槽
注意:新添加的节点是没有哈希曹的,所以并不能正常存储数据,需要给新添加的节点分配哈希曹:哈希槽的配置不均匀,可能导致数据不同步;
1、重新分配哈希槽
# ip:port 为当前redis集群任意节点ip和port,-a后面加密码
./src/redis-cli --cluster reshard ip:port -a 密码
执行上述命令后,如图:

2、输入要分配多少个哈希槽(数量)?比如我要分配1000个哈希槽

3、输入指定要分配哈希槽的节点ID,如上上图端口号为7002的两个master节点哈希槽的数量为0(选择任意一个节点作为目标节点进行分配哈希槽);

4、选择需要分配的哈希槽来源,输入all
输入all 需要分配给目标节点的哈希槽来着当前集群的其他主节点(每个节点拿出的数量为集群自动决定)

是否继续执行建议的reshard计划

输入yes后,就会完成分配哈希槽:
(1)进入redis客户端cluster slots 查看(7002端口的主节点的原哈希槽数量为0)

四、分配哈希槽有两种方式
(1)将所有节点用作哈希槽的源节点。:all
(2)在指定的节点拿出指定数量的哈希槽分配到目标节点:done
上述使用的是第一种方式分配哈希槽:
现在我们讲一下用第二种方式怎么分配:
1、现在我们对7002端口的另一个master进行分配哈希槽
./src/redis-cli --cluster reshard ip:port -a 密码
2、这里输入给目录节点选择分配1000个哈希槽,并输入要给哪个节点分配哈希槽,就输入哪个节点的ID

3、先输入源节点ID(哈希从哪里来的?),然后再输入done

正在从源节点迁移哈希槽

4、是否继续执行建议的reshard计划
Do you want to proceed with the proposed reshard plan (yes/no)?
输入yes

5、执行结束后
cluster slots 查看

五、添加从节点
比如:添加7008节点(slave的添加方法,master为7007)
# 节点ID是主节点的ID
# 127.0.0.1:7008 是新加的从节点
# 127.0.0.1:7007 作为从节点的主节点
./src/redis-cli --cluster add-node --cluster-slave --cluster-master-id db10a9d5c1662d9e3cee21c5776f2e9709f76619 127.0.0.1: 127.0.0.1:
redis集群扩容(添加新节点)的更多相关文章
- Redis 集群环境添加节点失败问题
最近在给公司网管系统Redis集群环境添加节点时候遇到一个问题,提示新增的Node不为空: [root@node00 src]# ./redis-trib.rb add-node --slave -- ...
- 向CDH5集群中添加新的主机节点
向CDH5集群中添加新的主机节点 步骤一:首先得在新的主机环境中安装JDK,关闭防火墙.修改selinux.NTP时钟与主机同步.修改hosts.与主机配置ssh免密码登录.保证安装好了perl和py ...
- Hadoop概念学习系列之Hadoop集群动态增加新节点或删除已有某节点及复制策略导向 (四十三)
不多说,直接上干货! hadoop-2.6.0动态添加新节点 https://blog.csdn.net/baidu_25820069/article/details/52225216 Hadoop集 ...
- redis集群(单机6节点实现)
Redis集群搭建与简单使用 1.介绍安装环境与版本: 1)Redis使用的是Redis-3.2.8版本. 2)用一台虚拟机模拟6个节点,三个master节点,三个slave节点.虚拟机使用CentO ...
- Spring Cloud Eureka集群 动态扩展新节点
场景描述: Eureka的集群节点有两个,互相注册形成集群,已经支持动态刷新(不知道怎么让Eureka支持动态刷新的可以参考http://www.cnblogs.com/flying607/p/845 ...
- hadoop集群添加新节点
0.说明 Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点.以下就是增加的过程. 1.配置运行环境 安装与master和其他slave相同的java环境,jdk版本要相同 ...
- Redis Cluster 集群扩容与收缩
http://blog.csdn.net/men_wen/article/details/72896682 Redis 学习笔记(十五)Redis Cluster 集群扩容与收缩 标签: redis集 ...
- Redis集群伸缩
集群扩容 前提准备,目前集群中一共有6台机器,端口号分别是6381.6382.6383.6384.6385.6386 1) 准备新节点 准备两个新节点,端口号为6387和6388,配置和以前集群配置一 ...
- Redis集群管理
1.简介 Redis在生产环境中一般是通过集群的方式进行运行,Redis集群包括主从复制集群和数据分片集群两种类型. *主从复制集群提供高可用性,而数据分片集群提供负载均衡. *数据分片集群中能实现主 ...
随机推荐
- linux随笔-03
必须掌握的Linux命令 系统状态检测命令 1.ifconfig命令 ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”. 使用ifconfig命 ...
- 使用Maven创建Web项目(转)
转自:http://ju.outofmemory.cn/entry/49508 本文通过Maven完成一个简单的Web项目(注意,Spring配置不是重点,看看就行) 1.从Maven模板创建Web应 ...
- Java线程的优先级设置遵循什么原则?
Java线程的优先级设置遵从下述原则: (1) 线程创建时,子线程继承父线程的优先级 (2) 线程创建后,可在程序中通过调用setPriority( )方法改变线程的优先级 (3) 线程的优先级是1~ ...
- springboot解决跨域
@Configuration public class WebMvcConfiguration implements WebMvcConfigurer { @Bean public CorsFilte ...
- ORACLE 11G新特性之一(增加带default的字段)
在11g之前,增加带default值的字段,实现原理如下: alter table t1 add c1 varchar2(20) default 'XX' not null; 假设t1表有4千万行数据 ...
- ActiveMQ安装步骤及介绍
1.什么是ActiveMQ? ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现. JMS相关概念 提供者:实现JMS规范的消息中间件服务器 客户端:发送或接 ...
- ruby之基础语法
ruby语法之哈希 =>相当于python的字典 ruby语法之数组 =>相当于python的列表 举例: gitaly= Hash.new #建立新Hash类型 gitaly['firs ...
- mysql 获取任意一个月的所有天数。
SELECT ADDDATE(y.first, x.d - 1) as dFROM(SELECT 1 AS d UNION ALLSELECT 2 UNION ALLSELECT 3 UNION AL ...
- ajax中json格式数据如何朝后端发送数据
- RCC初始化学习
一.设置RCC时钟 //#define SYSCLK_HSE #define SYSCLK_FREQ_20MHz //#define SYSCLK_FREQ_36MHz //#define SYSCL ...