【redis】深入理解redis cluster --- 扩容集群


扩容集群:

  ◆准备新节点

    新节点:

      。必须是集群模式

      。配置和其他节点统一,节点的配置请参照之前写的“安装cluster”篇里面有写

      。启动后是孤儿节点,就是没有设置为主从节点

      。然后启动节点:redis-server conf/redis-${port}.conf

      
  ◆加入集群

    。使用原生方法:

      

       进入客户端中进行meet

    。使用redis-trib.rb加入集群:

            redis-trib.rb add-node new_host:new_port existing_host:existing_port --slave--master-id<arg>

            redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379

            建议使用redis-trib.rb能够避免新节点已经加入其他集群,造成故障

  ◆迁移槽和数据

    。槽迁移计划:

       

    。迁移数据

      *步骤:

            1,对目标节点发送:cluster setslot {slot} importing {sourceNodeId}命令,让目标节点准备导入槽的数据
            2,对源节点发送:cluster setslot {slot} migrating {targetNodeId}命令,让源节点准备迁出槽的数据
            3,源节点循环执行cluster getkeysinslot {slot} {count}命令,每次获取count个属于槽的键
            4,在源节点上执行migrate {targetIp} {targetPort} key 0 {timeout} 命令把指定key迁移
            5,重复执行步骤3~4直到槽下所有的键数据迁移到目标节点
            6,向集群内所有主节点发送cluster setslot {slot} node {targetNodeId}命令,通知槽分配给目标节点

      *流程图:

        

      *python操作的伪代码:

        

      *使用redis-trib.rb来迁移数据:

            1,./redis-trib.rb reshard 127.0.0.1:7000
            2,执行了上面的命令后会出现提示问你需要迁移多少个槽,这个数量是拿16384/加入新节点的总个数
            3,2的步骤执行完之后,它又会问你希望那个ID接受的给那个ID,你就填写你要加入的节点ID即可
            4,执行完3填入 all 回车即可
            5,这样就完成了

 

      

 

      

 

        

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM