8.redis 集群增加节点

新增 7007,7008节点

1.创建配置文件 ,并启动该节点

bin/redis-server redis-cluster/7007/redis.conf

bin/redis-server redis-cluster/7008/redis.conf

 

info ,可以看到是master ,但并没有从节点信息。

2. 添加一个主节点7007

//该命令在src源码目录下

./redis-trib.rb

  1)新增一个节点

Usage: redis-trib <command> <options> <arguments ...>

  create          host1:port1 ... hostN:portN
                  --replicas <arg>
  check           host:port
  info            host:port
  fix             host:port
                  --timeout <arg>
  reshard         host:port
                  --from <arg>
                  --to <arg>
                  --slots <arg>
                  --yes
                  --timeout <arg>
                  --pipeline <arg>
  rebalance       host:port
                  --weight <arg>
                  --auto-weights
                  --use-empty-masters
                  --timeout <arg>
                  --simulate
                  --pipeline <arg>
                  --threshold <arg>
  add-node        new_host:new_port existing_host:existing_port      //新增节点命令
                  --slave
                  --master-id <arg>
  del-node        host:port node_id
  set-timeout     host:port milliseconds
  call            host:port command arg arg .. arg
  import          host:port
                  --from <arg>
                  --copy
                  --replace
  help            (show this help)
[root@localhost src]# ./redis-trib.rb add-node 192.168.50.160:7007 192.168.50.160:7001  //新增节点,只需指明集群中的一个节点即可


>>> Adding node 192.168.50.160:7007 to cluster 192.168.50.160:7001
>>> Performing Cluster Check (using node 192.168.50.160:7001)
M: a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004
   slots: (0 slots) slave
   replicates a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387
M: 1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005
   slots: (0 slots) slave
   replicates 1b02fb181026cde4811b496612ceaab4981ea41a
S: 0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006
   slots: (0 slots) slave
   replicates a46526cf40e471c2164af8e1a8744e80f3ca43a3
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.50.160:7007 to make it join the cluster.
[OK] New node added correctly.

  2)再次查看集群状态

[root@localhost src]# /usr/local/bin/redis-cli -c -h 192.168.50.160 -p 7001      
192.168.50.160:7001> cluster nodes
f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004 slave a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 0 1527411047098 4 connected
1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002 master - 0 1527411043061 2 connected 5461-10922
a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001 myself,master - 0 0 1 connected 0-5460
c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007 master - 0 1527411045079 0 connected                             //该新增节点 未分配槽空间
a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003 master - 0 1527411045582 3 connected 10923-16383
b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005 slave 1b02fb181026cde4811b496612ceaab4981ea41a 0 1527411041042 5 connected
0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006 slave a46526cf40e471c2164af8e1a8744e80f3ca43a3 0 1527411046088 6 connected

  3)手动分配哈希槽

    重新分配的是主节点集群的槽,随便指定一个主节点即可,即代表分配所有主节点

    

[root@localhost src]# ./redis-trib.rb reshard 192.168.50.160:7001


>>> Performing Cluster Check (using node 192.168.50.160:7001)
M: a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004
   slots: (0 slots) slave
   replicates a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387
M: 1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)


M: c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007              //该节点是新增节点,没有槽
   slots: (0 slots) master
   0 additional replica(s)


M: a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005
   slots: (0 slots) slave
   replicates 1b02fb181026cde4811b496612ceaab4981ea41a
S: 0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006
   slots: (0 slots) slave
   replicates a46526cf40e471c2164af8e1a8744e80f3ca43a3
[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)? 200                         //重新分配200个槽 ,槽数是固定的,不能新增,只能是重新分配。哈希的原理。新增槽,原来的数据无法路由了
What is the receiving node ID? c30877687807f9128ce5f7b85e47a01fb29ed632
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:all                       //7001~7003 节点的槽都来参与分配

Ready to move 200 slots.
  Source nodes:
    M: a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
    M: 1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
    M: a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
  Destination node:
    M: c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007
   slots: (0 slots) master
   0 additional replica(s)
  Resharding plan:
    Moving slot 5461 from 1b02fb181026cde4811b496612ceaab4981ea41a
    Moving slot 5462 from 1b02fb181026cde4811b496612ceaab4981ea41a
    Moving slot 5463 from 1b02fb181026cde4811b496612ceaab4981ea41a
    Moving slot 5464 from 1b02fb181026cde4811b496612ceaab4981ea41a

  4)查看集群状态

  7007 新增了200个槽,具备读写操作了

[root@localhost src]# /usr/local/bin/redis-cli -c -h 192.168.50.160 -p 7001  
192.168.50.160:7001> cluster nodes
f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004 slave a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 0 1527411941098 4 connected
1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002 master - 0 1527411940089 2 connected 5528-10922
a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001 myself,master - 0 0 1 connected 66-5460
c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007 master - 0 1527411936556 7 connected 0-65 5461-5527 10923-10988             //7007 新增了200个槽
a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003 master - 0 1527411939079 3 connected 10989-16383
b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005 slave 1b02fb181026cde4811b496612ceaab4981ea41a 0 1527411937061 5 connected
0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006 slave a46526cf40e471c2164af8e1a8744e80f3ca43a3 0 1527411938069 6 connected
192.168.50.160:7001> 

  3.添加7008 从节点到集群

    1)添加一个新节点7008

  ./redis-trib.rb add-node 192.168.50.160:7008 192.168.50.160:7001


    2)绑定主从节点

[root@localhost src]# /usr/local/bin/redis-cli -c -h 192.168.50.160 -p 7008                            //登陆7008

192.168.50.160:7008> cluster nodes
a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003 master - 0 1527412403412 3 connected 10989-16383
0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006 slave a46526cf40e471c2164af8e1a8744e80f3ca43a3 0 1527412404421 3 connected
a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001 master - 0 1527412403916 1 connected 66-5460
b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005 slave 1b02fb181026cde4811b496612ceaab4981ea41a 0 1527412400385 2 connected
c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007 master - 0 1527412402403 7 connected 0-65 5461-5527 10923-10988                       //查看7007节点的id
4a5e8680213689de7ac7f3fc9bb072277b3c912d 192.168.50.160:7008 myself,master - 0 0 0 connected
1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002 master - 0 1527412401394 2 connected 5528-10922
f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004 slave a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 0 1527412405430 1 connected


192.168.50.160:7008> cluster replicate c30877687807f9128ce5f7b85e47a01fb29ed632                   //绑定主节点id
OK
192.168.50.160:7008> cluster nodes
a46526cf40e471c2164af8e1a8744e80f3ca43a3 192.168.50.160:7003 master - 0 1527412451864 3 connected 10989-16383
0d30abbb5717320860a18e66959f147199cacbe5 192.168.50.160:7006 slave a46526cf40e471c2164af8e1a8744e80f3ca43a3 0 1527412455904 3 connected
a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 192.168.50.160:7001 master - 0 1527412455399 1 connected 66-5460
b5b73f83af63a746872eded224249331bdfa4211 192.168.50.160:7005 slave 1b02fb181026cde4811b496612ceaab4981ea41a 0 1527412457923 2 connected
c30877687807f9128ce5f7b85e47a01fb29ed632 192.168.50.160:7007 master - 0 1527412452874 7 connected 0-65 5461-5527 10923-10988
4a5e8680213689de7ac7f3fc9bb072277b3c912d 192.168.50.160:7008 myself,slave c30877687807f9128ce5f7b85e47a01fb29ed632 0 0 0 connected                   //查看7008 节点,找到被绑定的主节点的id:7007 的id 一致
1b02fb181026cde4811b496612ceaab4981ea41a 192.168.50.160:7002 master - 0 1527412453884 2 connected 5528-10922
f92eb54bcc0b89e5b559f1295e95309564538079 192.168.50.160:7004 slave a3c4e4d3cc99f2dd6c9aaedcfed8ff76058e9387 0 1527412456913 1 connected
192.168.50.160:7008> 

 

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值