文档章节

Redis 3.0集群(二)

仝玉甫
 仝玉甫
发布于 2015/04/27 18:02
字数 669
阅读 3387
收藏 97


 在Redis 3.0集群(一)中讲了Redis集群的基本搭建。这一节主要讲对Redis集群的操作。

添加Master节点到集群

  • 按照Redis集群一的方式,创建端口为7006的新实例,并启动该实例

  • 将7006添加到集群:

redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

    node:新节点没有包含任何数据, 因为它没有包含任何slot。新加入的加点是一个主节点, 当集群需要将某个从节点升级为新的主节点时, 这个新节点不会被选中。

  • 给新节点分配哈希槽:

redis-trib.rb reshard 127.0.0.1:7000
#根据提示选择要迁移的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? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择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:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束
  • 查看操作结果:

redis-cli -c -p 7000
cluster nodes

    可以看到返回的集群信息中,7006拥有了0-999哈希槽。

添加Slave节点到集群

  • 按照Redis集群一的方式,创建端口为7007的新实例,并启动该实例

  • 将7007添加到集群:

redis-trib.rb add-node 127.0.0.1:7007 127.0.0.1:7000
  • 设置为7006的slave:

redis-cli -c -p 7007
#参数为master节点的ID
cluster replicate 2b9ebcbd627ff0fd7a7bbcc5332fb09e72788835

删除一个Slave节点

#redis-trib del-node ip:port '<node-id>'  
redis-trib.rb del-node 127.0.0.1:7007 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'

删除一个Master节点

删除master节点之前首先要使用reshard移除master的全部slot,然后再删除当前节点(目前只能把被删除master的slot迁移到一个节点上)

redis-trib.rb reshard 127.0.0.1:7006
#根据提示选择要迁移的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? f51e26b5d5ff74f85341f06f28f125b7254e61bf
#选择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:3375be2ccc321932e8853234ffa87ee9fde973ff
Source node #2:done
#打印被移动的slot后,输入yes开始移动slot以及对应的数据.
#Do you want to proceed with the proposed reshard plan (yes/no)? yes
#结束

#删除空master节点
redis-trib.rb del-node 127.0.0.1:7006 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378'


© 著作权归作者所有

共有 人打赏支持
仝玉甫
粉丝 6
博文 15
码字总数 11114
作品 0
浦东
程序员
加载中

评论(2)

蒋默
蒋默
删除一个Master节点时,Source node #1:3375be2ccc321932e8853234ffa87ee9fde973ff.这个应该是你移除的master的节点的ID吧?意思是从这个节点移除500个slot。

#删除空master节点
redis-trib.rb del-node 127.0.0.1:7006 'c7ee2fca17cb79fe3c9822ced1d4f6c5e169e378' 你这个ID怎么和上面移除的ID不一样??
AkataMoKa
AkataMoKa
好文,赞!
codis集群部署实战

一、概要 1、折腾codis集群已经快两个月了,感谢一直以来codis的作者刘奇和黄东旭的耐心支持,在这里给你们点个赞,现在我司已经有一个业务跑在了codis集群上,目前只是切了整个业务的10%的量...

navyaijm2012
2015/04/23
0
0
redis高可用架构

一、背景 公司的业务在大量的使用redis,访问量大的业务我们有在使用codis集群,redis 3.0集群,说到redis 3.0集群,我们线上已经跑了半年多了,集群本身没有出现过任务问题,但是由于我们这...

navyaijm2012
2016/02/27
0
0
迁移数据到redis-cluster

旧redis: 192.168.1.204 192.168.1.205 分别存放着不同的key redis-cluster: Master:192.168.1.200 192.168.1.202 192.168.1.203 Slave: 192.168.1.206 192.168.1.207 192.168.1.208 模拟red......

362475097
2017/01/09
0
0
redis集群实战

一、说明 redis 3.0集群功能出来已经有一段时间了,目前最新稳定版是3.0.5,我了解到已经有很多互联网公司在生产环境使用,比如唯品会、美团等等,刚好公司有个新项目,预估的量单机redis无法...

navyaijm2012
2015/10/27
0
0
求知识,redis3.0集群创建好后,如何在spring-data-redis支持?

RT,以前只有一台REDIS的时候,是用org.springframework.data.redis.core.RedisTemplate的,现在变成3.0集群了,如和使用spring-data-redis? redis 3.0集群配置,我是参考这个配置http://my...

猫神
2015/11/24
635
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

又一个centos文件顺序导致的问题

背景 新的centos似乎对于文件顺序做了特别的优化 和文件顺序出现的问题确实多了不少 centos7导致的spring循环依赖【实际上和这个问题不一样 不过由此衍生出的问题】 某应用放在新的系统开始报...

Mr_Qi
15分钟前
0
0
阿里云国际版香港CN2测评 月付9美元/30M带宽/1T流量

市面上很多家香港VPS服务商,一直都说阿里云国际版香港CN2线路好,延迟低,速度快,价格便宜流量还多,那么这个香港线路到底怎么样呢?本文从性能、延时、路由、速度方面来全方面测评一下阿里...

flyzy2005
57分钟前
0
0
撤销git commit --amend

it commit -amend之后想撤销 git reset HEAD@{1}

xiaomge
今天
0
0
有意思的TimeUnit

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum: public enum TimeUnit 好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并...

polly
今天
10
0
生成pyc

Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。一般py文件改...

Mr_Tea伯奕
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部