• redis 3.0 集群__数据迁移和伸缩容


    添加节点

    1,启动2个新的redis-sever, 参照 ( redis 3.0 集群____安装 ),端口号为 7007 和 7008

    2,使用命令 redis-trib.rb add-node 命令添加新节点

    redis-trib.rb add-node 192.168.10.229:7007 192.168.10.229:7001  ( 第一个是新节点ip:port, 第二个是任意一个已存在节点ip:port  ),结果如下

    这时候只是挂到集群里面而已,还没分配 slot 给它, 如下图 cluster_known_nodes : 7 但是 cluster_size :  3

       

    3 使用 redis-trib.rb reshard 新节点IP:port 命令 分配 slot 给新节点,如下

    redis-trib.rb reshard 192.168.10.229:7007  

    redis-trib.rb reshard 192.168.10.229:7007  
    #根据提示选择要迁移的slot数量(ps:这里选择500)  
    How many slots do you want to move (from 1 to 16384)? 500  
    #选择要接受这些slot的node-id  
    What is the receiving node ID? 新节点的ID 
    #选择slot来源:  
    #all表示从所有的master重新分配,  
    #或者数据要提取slot的master节点id,最后用done结束  
    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  
    #打印被移动的slot后,输入yes开始移动slot以及对应的数据.  
    #Do you want to proceed with the proposed reshard plan (yes/no)? yes  
    #结束 

     

    4 使用 cluster replicate master的nodeId  给新节点添加一个 slave 

    同第一步,先起一个 7008 的节点,并用 redis-trib.rb add-node 把该节点加入进来,

    然后 redis-cli -c -p 7008 登录进来,最后用 cluster replicate 命令挂到 master 下面, 注意下面 7008 自己身份的变化

    移除节点

    使用命令 redis-trib.rb del-node 192.168.10.229:7008 d3e4d00bea60fd7873d4739a2b4008d9975ca04e

    如果是删除 slave ,则可以直接删除

    如果是删除 master ,必须先用 redis-trib.rb reshard 把数据迁移出去后才能删除

    数据迁移

    Redis Cluster支持在线增/减节点。
    基于桶的数据分布方式大大降低了迁移成本,只需将数据slot从一个Redis Node迁移到另一个Redis Node即可完成迁移。
    当桶从一个Node A向另一个Node B迁移时,Node A和Node B都会有这个slot,Node A上slot的状态设置为MIGRATING,Node B上slot的状态被设置为IMPORTING
    当客户端请求时:
    所有在Node A上的请求都将由A来处理,所有不在A上的key都由Node B来处理。同时,Node A上将不会创建新的key

  • 相关阅读:
    CodeForces 722C 题解
    ubuntu自带神奇文本编辑器-gedit使用入门
    My new Blog on cnblogs
    kaldi语音识别技术
    BUAA-OO-第三单元作业-JML之图论
    C++面向对象编程思想
    软件工程-设计模式
    BUAA-OO-第二单元作业-电梯调度
    操作系统make命令与Makefile文件编写
    操作系统启动过程分析(Linux-OS启动优化)
  • 原文地址:https://www.cnblogs.com/zyguo/p/4403020.html
Copyright © 2020-2023  润新知