10.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>

 

  

 

posted on 2018-05-27 16:18  老曹123  阅读(195)  评论(0)    收藏  举报

导航