添加节点

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

转载于:https://www.cnblogs.com/zyguo/p/4403020.html

redis 3.0 集群__数据迁移和伸缩容相关推荐

  1. 2W 字详解 Redis 6.0 集群环境搭建实践

    原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...

  2. hbase集群之间数据迁移_hbase数据迁移到另一集群上

    通常我们都会有将hbase表数据迁到另一个hbase表中业务需要,这种不要着急,我选择一种最适合的方式,因为每种方式处理的数据量.对集群的压力都是有差异的 总的划分可以分为命令行和API两种方式,本人 ...

  3. hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器

    BDS定位 BDS针对开源HBase目前存在的同步迁移痛点,自主研发的一套数据迁移的平台,用于HBase集群的无缝迁移.主备容灾.异地多活.在线离线业务分离.HBase数据归档.对接RDS实时增量数据 ...

  4. HBase不同版本集群之间数据迁移

    本文摘自:https://www.dazhuanlan.com/2019/10/20/5dac43ffeb75a/ 由于HBase CDH4和CDH5数据格式不兼容,所以不能用"CopyTa ...

  5. Redis 3.0集群搭建/配置/FAQ

    ·声明 1,已官网中文教程为基础,边看边学,结合环境现状搭建. 2,哥对Ruby不热爱.不熟悉.不感冒,所述内容如有疑义请谅解. 3,3.0官说集群还在测试中,其实用用也还算马马虎虎,对外集群API真 ...

  6. hbase集群间数据迁移

    2019独角兽企业重金招聘Python工程师标准>>> HBase迁移数据方案一(集群互联) 一.需要在hbase集群停掉的情况下迁移 步骤: (1)执行Hadoop distcp ...

  7. hadoop 集群间数据迁移

    hadoop集群之间有时候需要将数据进行迁移,如将一些保存的过期文档放置在一个小集群中进行保存. 使用的是社区提供的功能,distcp.用法非常简单: hadoop distcp hdfs://nn1 ...

  8. hbase集群之间数据迁移_HBase不同集群间数据迁移

    前提 两个集群相同vpc和安全组 操作步骤 一.查看源端集群HDFS NameNode IP和port 1. 查看NameNode IP,获取对应的name转换成IP hdfs getconf -na ...

  9. Docker下Redis Cluster分片集群的搭建、基本操作、集群扩容和集群故障转移(非关系型数据库技术课程 第九周)

    文章目录 Docker 下Redis Cluster 分片集群搭建 1. Cluster 分片集群 1.1 Cluster 集群的结构和作用 1.2 Cluster 分片集群 的作用 1.3哈希槽(h ...

最新文章

  1. 皮一皮:这个单人可玩推理真是太好玩了...
  2. java 参数 exception_java – 在异常的参数中使用泛型
  3. mssql与oracle不同点,MySql,Mssql,Oracle的优缺点和异同(欢迎补充) *
  4. 基于springboot的家政服务网站
  5. 「 Matlab 」矩阵运算讲解
  6. 专利:专利说明书的主要组成部分
  7. ios手机上java最好的编辑器_程序员编程利器:20款最好的免费的IDEs和编辑器
  8. 最好的3个Windows电脑上的azw3阅读器
  9. Excel统一将小写的金额转为大写汉字金额的操作
  10. 3D机器学习(4):pytorch入门3:张量的拼接与拆分、张量的运算、张量的统计
  11. 我是一个线程(转载自: IBM刘欣)
  12. lambda函数用法及注意事项(简单总结,有待补充)
  13. 简单几步轻松获取WiFi密码
  14. Mongoose第三方包常用操作整理
  15. vop破芙工艺-注意事项
  16. 【FPGA】串口以命令控制温度采集
  17. 从微软官网下载VS2015(2016年8月25日)
  18. tkinter实现图片自适应
  19. Chromium之工程依赖关系.
  20. Springboot 自定义注解AOP实现时间参数格式转换

热门文章

  1. python数据类型-Python核心数据类型概览
  2. python流程图基本元素-Python初学(十一)
  3. 怎么自学python语言-怎样学好python
  4. 零基础学python需要多久-零基础学Python要多久
  5. python知乎-学会python的好处,轻易搭建自己的知乎
  6. python面试-python简单面试题
  7. python语言入门z-【python】编程语言入门经典100例--22
  8. spring中是如何解析@Profile注解的
  9. LeetCode Random Pick Index(蓄水池抽样算法)
  10. spoj BCEASY - Bottom Coder (Easy)