os: ubuntu 16.04
redis:4.0.9
ruby:2.4.4

ip规划

192.168.0.101 7000,7001,7002
192.168.0.102 7000,7001,7002
192.168.0.103 7000,7001,7002

现在加三个redis实例

192.168.0.101 7003
192.168.0.102 7003
192.168.0.103 7003

参考<<redis cluster 4.0.9 之一: make && make install>>,在 ubuntu 16.04 安装了 redis cluster 4.0.9,详细过程略。

# apt install make gcc g++ openssl libcurl4-openssl-dev zlib1g zlib1g-dev \
tcl tcl-dev iftop sysstat telnet tree curl lrzsz \
ruby ruby-dev libruby rubygems-integration# gem install redis

下面简单记录下添加 redis 实例的过程。

redis-trib.rb check

# /usr/redis/redis-4.0.9/src/redis-trib.rb check 192.168.0.101:7000>>> Performing Cluster Check (using node 192.168.0.101:7000)
M: bae1665a3a55f5f2f2c224e1533118a1168b6a1d 192.168.0.101:7000slots:0-5460 (5461 slots) master2 additional replica(s)
M: fbf3b7827137251d03638436d28a2a9b82cea44c 192.168.0.102:7000slots:5461-10922 (5462 slots) master2 additional replica(s)
S: f5a34cea79ae1614241eb489808b9309514fa8eb 192.168.0.101:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
S: 550f9347512ee841cf558ef254dbdf3b4379f6a9 192.168.0.103:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
M: ca76bd2110000f6285360e1d0979ac14fec7f86a 192.168.0.103:7000slots:10923-16383 (5461 slots) master2 additional replica(s)
S: d93a37d9fb2e526d01a5f4c6b6b9743674656286 192.168.0.101:7001slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 464b9cab8863085b4bff880eca339a9e7983898c 192.168.0.103:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
S: bcdecbdb2528f2953145aa08c82d8c4a9a89e0a0 192.168.0.102:7002slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 141c2cf5b07da8c0d5b4b7c6dc42335d7638946f 192.168.0.102:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
[OK] All nodes agree about slots configurat./7003/redis.confion.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

基本情况如下:
192.168.0.101:7000 > 192.168.0.102:7001,192.168.0.103:7001
192.168.0.102:7000 > 192.168.0.101:7002,192.168.0.103:7002
192.168.0.103:7000 > 192.168.0.101:7001,192.168.0.102:7002

redis-trib.rb add-node

node1、node2、node3 节点创建7003

# cd /var/lib/redis/4.0.9/cluster-data
# cp -r ./7000 ./7003
# sed -i "s/7000/7003/g" ./7003/redis.conf
# rm ./7003/appendonly.aof ./7003/cluster_7000.conf ./7003/dump.rdb
# /usr/local/bin/redis-server /var/lib/redis/4.0.9/cluster-data/7003/redis.conf

node1 节点上操作

# /usr/redis/redis-4.0.9/src/redis-trib.rbadd-node        new_host:new_port existing_host:existing_port--slave--master-id <arg>
# /usr/redis/redis-4.0.9/src/redis-trib.rb add-node 192.168.0.101:7003 192.168.0.101:7000

第一个参数为待添加的新节点,第二个参数为cluster中任何一个节点.

其中 existing_host:existing_port 可以为任何一个redis实例
new_host:new_port = 192.168.0.101:7003
existing_host:existing_port = 192.168.0.101:7000

# /usr/redis/redis-4.0.9/src/redis-trib.rb check 192.168.0.101:7000
>>> Performing Cluster Check (using node 192.168.0.101:7000)
M: bae1665a3a55f5f2f2c224e1533118a1168b6a1d 192.168.0.101:7000slots:0-5460 (5461 slots) master2 additional replica(s)
M: fbf3b7827137251d03638436d28a2a9b82cea44c 192.168.0.102:7000slots:5461-10922 (5462 slots) master2 additional replica(s)
S: f5a34cea79ae1614241eb489808b9309514fa8eb 192.168.0.101:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
S: 550f9347512ee841cf558ef254dbdf3b4379f6a9 192.168.0.103:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
M: ca76bd2110000f6285360e1d0979ac14fec7f86a 192.168.0.103:7000slots:10923-16383 (5461 slots) master2 additional replica(s)
S: d93a37d9fb2e526d01a5f4c6b6b9743674656286 192.168.0.101:7001slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 464b9cab8863085b4bff880eca339a9e7983898c 192.168.0.103:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
M: 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.101:7003slots: (0 slots) master0 additional replica(s)
S: bcdecbdb2528f2953145aa08c82d8c4a9a89e0a0 192.168.0.102:7002slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 141c2cf5b07da8c0d5b4b7c6dc42335d7638946f 192.168.0.102:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.# /usr/redis/redis-4.0.9/src/redis-trib.rb info 192.168.0.101:7000
192.168.0.101:7000 (bae1665a...) -> 0 keys | 5461 slots | 2 slaves.
192.168.0.102:7000 (fbf3b782...) -> 1 keys | 5462 slots | 2 slaves.
192.168.0.103:7000 (ca76bd21...) -> 0 keys | 5461 slots | 2 slaves.
192.168.0.101:7003 (4a77a013...) -> 0 keys | 0 slots | 0 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.

可以看到刚才新加的节点为 master,没有slave

M: 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.101:7003slots: (0 slots) master0 additional replica(s)

给 192.168.0.101:7003 加两个slave .需要添加参数 –slave --master-id

# /usr/redis/redis-4.0.9/src/redis-trib.rb add-node --slave --master-id 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.102:7003 192.168.0.101:7003
# /usr/redis/redis-4.0.9/src/redis-trib.rb add-node --slave --master-id 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.103:7003 192.168.0.101:7003# /usr/redis/redis-4.0.9/src/redis-trib.rb check 192.168.0.101:7000
>>> Performing Cluster Check (using node 192.168.0.101:7000)
M: bae1665a3a55f5f2f2c224e1533118a1168b6a1d 192.168.0.101:7000slots:0-5460 (5461 slots) master2 additional replica(s)
M: fbf3b7827137251d03638436d28a2a9b82cea44c 192.168.0.102:7000slots:5461-10922 (5462 slots) master2 additional replica(s)
S: f5a34cea79ae1614241eb489808b9309514fa8eb 192.168.0.101:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
S: b7ee4163c0d14e7c763a2c4072f10042c84e4ca6 192.168.0.103:7003slots: (0 slots) slavereplicates 4a77a0134068e2d9f2734213ead14bf9bce2e072
S: 550f9347512ee841cf558ef254dbdf3b4379f6a9 192.168.0.103:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
M: ca76bd2110000f6285360e1d0979ac14fec7f86a 192.168.0.103:7000slots:10923-16383 (5461 slots) master2 additional replica(s)
S: 179d2cc1d16d59c479df8536e7720977772e75c8 192.168.0.102:7003slots: (0 slots) slavereplicates 4a77a0134068e2d9f2734213ead14bf9bce2e072
S: d93a37d9fb2e526d01a5f4c6b6b9743674656286 192.168.0.101:7001slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 464b9cab8863085b4bff880eca339a9e7983898c 192.168.0.103:7002slots: (0 slots) slavereplicates fbf3b7827137251d03638436d28a2a9b82cea44c
M: 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.101:7003slots: (0 slots) master2 additional replica(s)
S: bcdecbdb2528f2953145aa08c82d8c4a9a89e0a0 192.168.0.102:7002slots: (0 slots) slavereplicates ca76bd2110000f6285360e1d0979ac14fec7f86a
S: 141c2cf5b07da8c0d5b4b7c6dc42335d7638946f 192.168.0.102:7001slots: (0 slots) slavereplicates bae1665a3a55f5f2f2c224e1533118a1168b6a1d
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.# /usr/redis/redis-4.0.9/src/redis-trib.rb info 192.168.0.101:7000
192.168.0.101:7000 (bae1665a...) -> 0 keys | 5461 slots | 2 slaves.
192.168.0.102:7000 (fbf3b782...) -> 1 keys | 5462 slots | 2 slaves.
192.168.0.103:7000 (ca76bd21...) -> 0 keys | 5461 slots | 2 slaves.
192.168.0.101:7003 (4a77a013...) -> 0 keys | 0 slots | 2 slaves.
[OK] 1 keys in 4 masters.
0.00 keys per slot on average.

现在基本情况如下:
192.168.0.101:7000 > 192.168.0.102:7001,192.168.0.103:7001
192.168.0.102:7000 > 192.168.0.101:7002,192.168.0.103:7002
192.168.0.103:7000 > 192.168.0.101:7001,192.168.0.102:7002

192.168.0.101:7003 > 192.168.0.102:7003,192.168.0.103:7003

注意观察,新master 192.168.0.101:7003 并没有分配 slots

M: 4a77a0134068e2d9f2734213ead14bf9bce2e072 192.168.0.101:7003slots: (0 slots) master2 additional replica(s)

此时的状况是虽然成功添加了1个master,2个salve,但是并没有分配slots。

参考:
http://www.cnblogs.com/chenmh/p/9221672.html
http://www.redis.cn/topics/cluster-tutorial.html

redis cluster 4.0.9 之四: redis-trib.rb add-node相关推荐

  1. Redis进阶-5.x 单节点 及Redis Cluster 3主3从集群部署

    文章目录 Redis 下载地址 Redis 5.x 单节点 编译安装 Redis 启停 Redis Cluster 4.x VS Redis Cluster 5.x 演进之路 ( Master/Sla ...

  2. Docker搭建3主3从Redis Cluster集群

    本文使用镜像由慕课网的神思者老师提供 本文使用镜像是已经配置好了的Redis镜像, 如果需要自定义可修改配置文件或用官方Redis镜像进行部署 1. 拉取配置好的Redis镜像 docker pull ...

  3. redis cluster 安装配置

    一.redis集群安装配置 1.下载redis源码包并下载 wget http://download.redis.io/releases/redis-3.0.7.tar.gz $ tar xzf re ...

  4. [Java工程师面试精选]Redis cluster集群模式的原理

    redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内 ...

  5. redis集群之REDIS CLUSTER

    redis集群之REDIS CLUSTER 时间 2016-04-11 17:05:00  NoSQL_博客园 原文  http://www.cnblogs.com/zhanchenjin/p/537 ...

  6. centos7 docker-compose安装_Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  7. 全面剖析Redis Cluster原理和应用 (good)

    redis redis cluster注意的问题 : 1.'cluster-require-full-coverage'参数的设置.该参数是redis配置文件中cluster模式的一个参数,从字面上基 ...

  8. redis集群扩容和缩容_深入理解Redis Cluster集群

    一.背景 前面的文章<深入理解Redis哨兵机制>一文中介绍了Redis哨兵集群的工作原理,哨兵集群虽然满足了高可用的特性,但是依然存在这样的问题:即数据只能往一个主节点上进行写入. 只能 ...

  9. 美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题

    转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 由于演讲时间有限,有关Redis-Cluster,演讲者没做太多介绍,简单的介绍了一些Redis-Clu ...

最新文章

  1. (chap6 Http首部) 响应首部字段 Ct-MD5Ct-RangeCt-TypeExpiresLast-Modified
  2. 【转】HashTable 和 HashMap的区别
  3. Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明
  4. mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿
  5. celebs名人写真图片数据采集,先下载100个G再说
  6. [linux]单网卡绑定多个IP
  7. 计算机视觉实战(三)阈值与平滑处理
  8. LINUX下载编译x265
  9. 微软黑客马拉松@您,低代码风云再赛
  10. Export encrypted key
  11. php发送邮件二种方法 php使用smtp发送邮件
  12. JAVA Stream的collect用法与原理(详解)
  13. MIDI音乐制作概论,常用插件与流行音乐模板
  14. 北京多家大型驾校酝酿至少涨价10%
  15. VSTO PPT图表对象的操作(1)
  16. 关于安卓手机里的文件夹及其由来
  17. SSH、telnet、远程桌面区别
  18. 《深度学习,统计学习,数学基础》人工智能算法工程师手册
  19. 互联网创业人士具备的5大素质
  20. Graphx中pregel详解及具体应用分析(以最短路径为例)

热门文章

  1. 原型模式与深拷贝浅拷贝
  2. visio画等分树状图
  3. Mysql三种存储引擎及区别
  4. 八图片在线图片设置付费
  5. 服务器系统崩溃真是惊险刺激,guanjunjc
  6. OCR识别--详解驾驶证识别技术
  7. 抖店与淘宝有什么不同?
  8. Amazon亚马逊卖家设置World First(WF卡)收款教程!
  9. “北大数学系扫地僧” 等十人获奖,均分1000万元,达摩院2021青橙奖出炉
  10. java输入月份获得该年的这个月最后一个工作日是多少号(星期一到星期五)