博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Redis应用学习——Redis Cluster的集群伸缩
阅读量:6917 次
发布时间:2019-06-27

本文共 1535 字,大约阅读时间需要 5 分钟。

hot3.png

1. 集群伸缩原理

    1. 集群伸缩:即集群中节点的增加和减少,在集群伸缩的同时,也伴随着槽位及槽位中数据在节点之间的移动

    2. 集群扩容原理:

  • 首先要准备好新的节点:依据上一篇博客中的集群节点的配置文件模板,然后启动该节点,此时该节点是一个单独的集群节点
  • 将该节点加入集群:
    • 通过集群中任意一个节点的客户端执行cluster meet命令将这两个单独的节点添加进入集群,添加后再执行cluster nodes命令查看集群中所有的节点的相关信息,查看是否有新添加的两个节点;添加的节点如果为主节点就是用于集群扩容,要进行槽位和数据迁移(执行第三步),如果为从节点则用于负责自动故障转移,不会发生数据迁移
    • 通过redis-trib.rb的添加节点的命令:add-node  new_host:new_port existing_host:existing_port  --slave  --master-id   <arg>,使用该命令时,会先检测new_host:new_port所代表的节点是否是一个孤立的节点(即是否处于另一个集群中),existing_host:existing_port该参数就表示目标集群中以存在的节点,new_host:new_portexisting_host:existing_port两个节点会进行一个meet操作来将新节点添加到集群中,而--slave --master-id <arg>这两个参数表示新添加进入的节点是一个从节点,而其主节点就为<arg>参数处所写的集群中存在的主节点的node-id,如果添加的是一个主节点则不需要--slave --master-id <arg>两个命令参数
  • 迁移槽位和槽位中的数据(该操作只针对添加主节点,而添加从节点则无此操作):
    • 在迁移槽位时,要保证各个主节点的槽位数量均衡
    • 迁移数据,当在迁移槽位时,也要讲槽位中的每个数据全部迁移,迁移数据完成后,会将新的槽位所在的节点信息广播到集群中的每一个节点中
    • 使用Redis中的集群原生命令过于复杂,推荐使用redis-trib.rb的命令来执行更为方便,命令为 reshard  host:porthost:port可以是集群中任意一个节点的IP地址和端口号,回车执行该命令后会提示下一个要输入的参数是要转移的槽位个数slots(比如下图中的1000),输入后回车执行,又会提示写一个参数就是接受这些槽位的主节点的node-id,回车执行提示输入这些槽位的来源节点,可以写一个具体的节点id,可以写多个,最后输入一个done来表示输入结束,也可以写一个all,表示从所有其他主节点中的所有槽位中均匀分配出slots个槽位,再按下回车执行直到提示输入yes表示确认执行操作。3c33b1834e441f19efd60b364c7a2e8bb96.jpg2d26f9732e73ef9f4708472e3cfe23fdea6.jpg28e91122f7dc5a9f1dcc139dc5e43616bab.jpg

    3. 集群缩容原理:

  • 首先检查即将下线的节点中是否有槽位,如果有则说明当前节点为主节点,首先应下线其从节点,然后要将槽位及数据迁移到其他节点,然后再下线主节点
    • 槽位迁移:首先迁移节点中的所有槽位到另一个主节点中,使用redis-trib.rb的命令 reshard  host:port,注意尽量将被删除节点中的槽位平均分配到其他主节点中
    • 节点下线:使用redis-trib.rb中的命令del-node  host:port  node_idhost:port可以是集群中任意一个节点的IP地址和端口,而node_id则是要被删除的节点id
  • 将该节点的下线信息告诉其他节点,在执行redis-trib.rb中的del-node命令后会自动通知,并自动关闭该节点
  • 关闭该节点,

转载于:https://my.oschina.net/ProgramerLife/blog/2870686

你可能感兴趣的文章
我的友情链接
查看>>
String字符串
查看>>
SolarWinds-DesktopToolset
查看>>
我的友情链接
查看>>
Mac sudo 命令不能用报错处理
查看>>
RHEL7上配置NFS服务
查看>>
我的友情链接
查看>>
Vim编辑器
查看>>
linux应用程序的管理
查看>>
利用python监控文件被修改
查看>>
pt(Percona Toolkit)工具详解:(二)工具介绍
查看>>
我的友情链接
查看>>
memcache、redis、mongodb对比
查看>>
关于分布式事务名词的基本解释的读书笔记
查看>>
组成关系映射(映射文件)
查看>>
我的友情链接
查看>>
CI框架中出现Disallowed Key Characters
查看>>
vdbench使用
查看>>
使用Serv-u限制文件类型
查看>>
VMware:NSX终于揭开面纱
查看>>