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集群包括主从复制集群和数据分片集群两种类型. *主从复制集群提供高可用性,而数据分片集群提供负载均衡. *数据分片集群中能实现主 ...
随机推荐
- http请求访问响应慢问题解决的基本思路
第一步,检查网络 ping命令检查网络域名解析是否正常,ping服务器的延迟是否过大,如果过大可以检查Ip是否冲突,或者交换机网线是否正常插好,通过nmon还可以查看网络流量,一般用的千兆交换机理论速 ...
- tomcat-性能优化参考
转摘 http://blog.csdn.net/lifetragedy/article/details/7708724. ###jdk1.6.未验证.仅供参考### linux环境下Tomcat调优 ...
- python 发送json数据操作实例分析 - python
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...
- Bootstrap 警告框
<div class="panel panel-primary"> <div class="panel-heading"> <h3 ...
- cerebro使用
一.安装cerebro 上传插件到任意路径 tar zxvf 解压插件包 [root@ngsocdev14 es]# ls cerebro-0.8.3.zip software [root@ngsoc ...
- QT blockingmaster例子学习
dialog.h: #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include "masterthread.h&q ...
- spring boot中读取配置文件的两种方式
application.properties test.name=测试 test.url=www.test.com 1.@Value注解 在controller里可以这样直接调用 @Value(&qu ...
- Codechef March Cook-Off 2018. Maximum Tree Path
目录 题意 解析 AC_code @(Codechef March Cook-Off 2018. Maximum Tree Path) 题意 给你一颗\(n(1e5)\)个点有边权有点权的树,\(Mi ...
- (18)C++ string和标准模板库
一.stringl类 1.string构造函数 string a1("abc");//初始化字符串 cout<<a1<<endl;//abc , '#'); ...
- 几个可以通过curl查询公网IP的站点
通过命令行获取公网ip 非常实用分享给大家实例: [root@T900 ~]# curl cip.cc IP : 119.29.29.29 地址 : 中国 广东省 广州市 运营商 : 腾讯网络 数据二 ...