Redis动态增加节点
Redis动态增加节点
1.启动redis集群
2.准备好待加入集群的redis实例
2.1创建两个目录用来存放新的redis实例(7008,7009)
使用命令 mkdir 7008 7009
2.2 拷贝redis.conf到7008和7009
2.3修改两个redis.conf
修改项:
(1)bind 127.0.0.1 mini34 /daemonize yes /port 700*(分别对每个机器的端口号进行设 置) (2)redis实例的pid文件: pidfile "/var/run/redis_700*.pid" (3) 日志的配置文件: logfile "/usr/local/redis-cluster/700*/redis.log" (4) dir /usr/local/redis-cluster/700*/ (指定数据文件存储位置,必须要指定不同的目录位置,不然会丢失数据) (5)cluster-enabled yes(启动集群模式,开始玩耍) (6)cluster-config-file nodes700*.conf(这里700*最好和port对应上) (7)cluster-node-timeout 5000 (redis超时时间,可改可不改) (8)appendonly yes / 并修改aof模式为: appendfsync always (开启redis数据实时持久化策略) |
2.4 启动两个redis实例
当前7008 7009 redis实例虽然启动了 但是并没有加入集群
验证命令
登录7008
[[email protected] redis-cluster]# redis/bin/redis-cli -h mini34 -p 7008
mini34:7008> info
3.将实例7008 7009加入集群
主节点添加(7008)------------------------------------
3.1使用redis-trib.rb脚本命令:
~/redis-3.2.8/src/redis-trib.rb add-node 新节点ip:新节点端口 集群任意一台节点IP:集群中任意一台节点端口 如下
~/redis-3.2.8/src/redis-trib.rb add-node 192.168.1.34:7008 192.168.1.34:7001
3.2检验节点是都添加成功
3.3检验数据槽是否分配了
3.4为新加入的节点分配数据槽
对集群进行重新分片,分一点槽给新加入的机器
命令: ~/redis-3.2.8/src/redis-trib.rb reshard集群中任意一台主节点IP:集群中任意一台主节点端口
如下:
~/redis-3.2.8/src/redis-trib.rb reshard mini34:7001
执行命令 [[email protected] ~]# ~/redis-3.2.8/src/redis-trib.rb reshard mini34:7001 >>> Performing Cluster Check (using node mini34:7001) M: b37b29006c1b7c205cac9ccec729f020224370fa mini34:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) S: 5bce6e6e8db64dfb9f4dc704739ce5ba55a4e956 127.0.0.1:7004 slots: (0 slots) slave replicates b37b29006c1b7c205cac9ccec729f020224370fa M: 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 127.0.0.1:7008 slots: (0 slots) master 0 additional replica(s) S: 8d440f94d4fe20cad6a6711e829461187d2141b1 127.0.0.1:7005 slots: (0 slots) slave replicates e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 M: c24f0c5d00233b81a79b7cf3b3d28dbcef123328 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) S: 00f224f0da87d31321630dfbaa9ef0170b745706 127.0.0.1:7006 slots: (0 slots) slave replicates c24f0c5d00233b81a79b7cf3b3d28dbcef123328 M: e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 127.0.0.1:7002 slots:5461-10922 (5462 slots) master 1 additional replica(s) [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)? 20 接收节点的id What is the receiving node ID? 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 Please enter all the source node IDs. 从所有节点中随机抽取20个数据槽 Type 'all' to use all the nodes as source nodes for the hash slots. 从指定节点中抽取20个数据槽 Type 'done' once you entered all the source nodes IDs. Source node #1:all
Ready to move 20 slots. Source nodes: M: b37b29006c1b7c205cac9ccec729f020224370fa mini34:7001 slots:0-5460 (5461 slots) master 1 additional replica(s) M: c24f0c5d00233b81a79b7cf3b3d28dbcef123328 127.0.0.1:7003 slots:10923-16383 (5461 slots) master 1 additional replica(s) M: e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 127.0.0.1:7002 slots:5461-10922 (5462 slots) master 1 additional replica(s) Destination node: M: 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 127.0.0.1:7008 slots: (0 slots) master 0 additional replica(s) Resharding plan: Moving slot 5461 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5462 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5463 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5464 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5465 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5466 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 5467 from e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 Moving slot 10923 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 10924 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 10925 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 10926 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 10927 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 10928 from c24f0c5d00233b81a79b7cf3b3d28dbcef123328 Moving slot 0 from b37b29006c1b7c205cac9ccec729f020224370fa Moving slot 1 from b37b29006c1b7c205cac9ccec729f020224370fa Moving slot 2 from b37b29006c1b7c205cac9ccec729f020224370fa Moving slot 3 from b37b29006c1b7c205cac9ccec729f020224370fa Moving slot 4 from b37b29006c1b7c205cac9ccec729f020224370fa Moving slot 5 from b37b29006c1b7c205cac9ccec729f020224370fa 是否执行上面的规划计划 Do you want to proceed with the proposed reshard plan (yes/no)?yes Moving slot 5461 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5462 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5463 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5464 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5465 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5466 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 5467 from 127.0.0.1:7002 to 127.0.0.1:7008: Moving slot 10923 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 10924 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 10925 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 10926 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 10927 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 10928 from 127.0.0.1:7003 to 127.0.0.1:7008: Moving slot 0 from mini34:7001 to 127.0.0.1:7008: Moving slot 1 from mini34:7001 to 127.0.0.1:7008: Moving slot 2 from mini34:7001 to 127.0.0.1:7008: Moving slot 3 from mini34:7001 to 127.0.0.1:7008: Moving slot 4 from mini34:7001 to 127.0.0.1:7008: Moving slot 5 from mini34:7001 to 127.0.0.1:7008: [[email protected] ~]# |
3.5检验新节点上是否已经有了数据槽
从节点添加(7009)------------------------------------
3.6添加7009节点
命令:
~/redis-3.2.8/src/redis-trib.rb add-node 新节点ip:新节点端口 集群任意一台节点IP:集群中任意一台节点端口
如下:
~/redis-3.2.8/src/redis-trib.rb add-node 192.168.1.34:7009 192.168.1.34:7001
3.7查看7009节点信息
3.8绑定7009为7008的从节点
命令: cluster replicate绑定到哪个主节点上
如下: cluster replicate 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 (7008的id)
[[email protected] redis-cluster]# redis/bin/redis-cli -h mini34 -p 7009 mini34:7009> cluster replicate 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 OK mini34:7009> cluster nodes 4f257a0d79ae59ef55b8dfe81e6f89f945469b78 127.0.0.1:7008 master - 0 1495106329675 7 connected 0-5 5461-5467 10923-10928 eab2aa8fe15448bc9b9c012a36d102e740172eca 127.0.0.1:7009 myself,slave4f257a0d79ae59ef55b8dfe81e6f89f945469b78 0 0 0 connected e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 127.0.0.1:7002 master - 0 1495106331691 2 connected 5468-10922 8d440f94d4fe20cad6a6711e829461187d2141b1 127.0.0.1:7005 slave e75adb7b8c4bb8a9f2256cd7291195a5664f5d54 0 1495106330682 2 connected 5bce6e6e8db64dfb9f4dc704739ce5ba55a4e956 127.0.0.1:7004 slave b37b29006c1b7c205cac9ccec729f020224370fa 0 1495106328161 1 connected b37b29006c1b7c205cac9ccec729f020224370fa 127.0.0.1:7001 master - 0 1495106327657 1 connected 6-5460 00f224f0da87d31321630dfbaa9ef0170b745706 127.0.0.1:7006 slave c24f0c5d00233b81a79b7cf3b3d28dbcef123328 0 1495106328664 3 connected c24f0c5d00233b81a79b7cf3b3d28dbcef123328 127.0.0.1:7003 master - 0 1495106326654 3 connected 10929-16383 mini34:7009> |
大功搞成!!!!!