redis 3.2 集群搭建

1.安装ruby环境

redis集群但是提示需要ruby2.2.2+
直接使用yum安装
yum -y install ruby ruby-devel rubygems rpm-build
使用ruby -v查看发现版本是2.0.0,还是搭建redis集群
ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
暂时没有查到如何直接升级,只能使用源码包方式进行安装

编译安装ruby2.2.2+
依赖环境
 yum install zlib-devel.x86_64

yum install openssl-devel.x86_64
yum install libssl-dev
(1).下载源码包
wget https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.7.tar.gz
 (2).解压并编译安装
tar xf ruby-2.2.7.tar.gz
cd ruby-2.2.7
./configure --prefix=/usr/local/ruby-2.2.7
make && make install
(3).创建快捷键
需要先删除旧的快捷方式重新创建
ln -s /usr/local/ruby-2.2.7/bin/ruby /usr/bin/ruby
ruby -v
ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-linux]

 

2.安装redis和ruby的接口

gem install redis

3.启动所有配置好的redis node

4.执行redis 编译目录的src下的redis-trib.rb 

./redis-trib.rb create --replicas 1 192.168.1.51:6381 192.168.1.51:6382 192.168.1.51:6383 192.168.1.51:6391 192.168.1.51:6392 192.168.1.51:6393

1:为主从的比例关系 6个节点时1 为 主1从    9个节点时为1主2从 以此类推... 

5.登录集群redis-cli -c(集群模式)-h 192.168.1.51 -p 6381              shutdown :关闭集群节点

(1)cluster info 查看集群信息    (2)cluster nodes 查看集群节点

 

            redis 添加和删除集群节点

从新创建集群 :  删除由集群创建的node-63*.conf 文件 ,使用./redis-trib.rb 从新创建集群

1.创建并启动新节点

2.添加主节点到集群中 ./redis-trib.rb add-node 192.168.1.51:6384  192.168.1.51:6381 添加新节点到集群中

     6384新节点,6381集群中已经存在的节点

3.添加从节点到新加入集群中的主节点下,作为新加入主节点的从节点 ./redis-trib.rb add-node --slave --master-id *** 192.168.1.51:6394 192.168.1.51:6381

4.从新分配slot

所谓重新分片,就是重新分配各个节点拥有的slots,这里我们的主要目的是从老的节点中迁移一部分slots放到新节点中去,以便让新节点真正成为集群中的一员.

./redis-trib.rb reshard 192.168.1.51:6381

 

当然也可以采用非交互自动的进行迁移, 如:

[root@localhost redis-3.2.0]# /usr/local/redis/bin/redis-trib.rb reshard --from a2eee0ea546f2c3701b08981737c07938039857c --to 36d53c7f1896838249c0b4afdcf680bac2f4ec2e --slots 45 --yes 127.0.0.1:7001

--from a2eee0ea546f2c3701b08981737c07938039857c //表示从哪个节点进行迁移,即源节点

--to 36d53c7f1896838249c0b4afdcf680bac2f4ec2e //迁移到哪个节点,即目标节点

--slots 45 //迁移多少slot

--yes //无需输入yes确认

不过非交互的迁移就不能使用多个源节点进行迁移slots了.

 

 删除节点

要删除集群中的某个节点(注:这里说的是集群中的主节点),首先必须确保这个节点没有拥有任何一个slots.我们现在来删除7001 这个节点.

首先,我们要把6382这个节点上的slots全部迁移出去.

redis-trib.rb reshard 192.168.1.51:6382

提示:

 

How many slots do you want to move (from 1 to 16384)?16384 //输入一个大于或等于6382节点所拥有的slots数的数即可.

What is the receiving node ID? 8ab3d14eba181c06dc8826bea0db1becdead2533 //接收这些slots的目标节点,这里是6381节点

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:a2eee0ea546f2c3701b08981737c07938039857c //因为我们要删除6382这个节点,所以源节点的id就是6382的节点ID

Source node #2:done //输入done,回车,就会开始从6382 这个节点迁移16384个slot(没有这么多就迁移拥有的全部)到7001:节点中去.

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值