Redis集群环境中添加和删除节点

上一节中说道如何在window下面安装redis集群,今天给大家介绍一下如何在redis集群环境中添加和删除节点。
首先是配置六个节点,三个为从节点,三个为主节点。
配置信息如下所示:
port 6380      #端口号
loglevel notice     #日志的记录级别,notice是适合生产环境的
logfile "E:/softtools/redis-3.0.1/Logs/redis6380_log.txt"  #指定log的保持路径,默认是创建在Redis安装目录下,如果有
appendonly yes  #数据的保存为aof格式  
appendfilename "appendonly.6380.aof"     #数据保存文件
cluster-enabled yes        #是否开启集群                              
cluster-config-file nodes.6380.conf  
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
总共配置六个这样的文件,每个配置文件的端口地址等都不一样。
进入到redis安装目录之下,输入redis-server ./Logs/redis.6380.conf启动每个节点的服务
接下来就是创建集群:
在redis目录下面执行 gem install --local E:/softtools/redis-3.2.2.gem 命令。显示以下结果接说明安装Ruby成功
然后就可以输入创建节点到集群中的命令了,命令如下所示:
redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385
出现这些信息就说明添加成功,系统会让我们是否确定集群,这里我们选择yes
这样redis的集群就搭建完毕了,这里我需要解释一下的是:
这里我没有设置任何的主从redis,为什么就可以自动实现了呢?其实猫腻是在redis-trib.rb create --replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385这个命令里面。
replicas 1其实就是设置了主从redis了,这里的1是指是后面所有的redis服务中有一半是主服务一半是从服务。至于谁是主的、谁是从的这个都是随机分配的。
replicas 0就表示设置的节点都是主节点,没有从节点
这样redis集群就已经设置好了,下面开始接受查询节点,添加节点,删除节点的操作
一.查询节点:
首先进入某个节点的客户端中,输入以下命令进入6380节点客户端中,命令:redis-cli -c -p 6380
其中cluster nodes命令就是查看所有节点信息,这里我们可以看到是三个master、三个slave节点。
二.添加节点:
1、首先把需要添加的节点启动
在Logs配置文件目录下面创建redis.6386.conf配置文件,可以复制其它的配置文件,然后修改端口后和其它相应的内容。
配置文件信息如下所示:
port 6386
loglevel notice    
logfile "E:/softtools/redis-3.0.1/Logs/redis6386_log.txt" 
appendonly yes
appendfilename "appendonly.6386.aof"   
cluster-enabled yes                                    
cluster-config-file nodes.6386.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-migration-barrier 1
cluster-require-full-coverage yes
2.通过上面说到的redis-server ./Logs/redis.6386.conf命令启动该服务
启动好之后会出现aof和conf这两个文件。
3.通过 redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6380 命令添加到redis集群环境中去。
这里需要注意的是:前面地址是新的添加的节点地址信息,后面是你想要复制的主节点信息,一定要是主节点才可以。
我当时犯了一个错误,就是在写了redis-trib.rb add-node 127.0.0.1:6386这样的命令,然后执行的时候一直报错,因为redis集群,在添加新的节点的时候必须要引用旧的主节点才可以。
然后可以输入cluster nodes查看节点是否添加成功。
从运行结果中可以看到,节点添加是成功的。但是节点还没分配槽给它,此时还不是可使用节点。
这里有两种选择,一种是变成从节点,一种是变成主节点
变成从节点比较简单,不需要重新分配槽。执行redis-cli -c -p 6386 cluster replicate d1feb9c8267f9b82f86db9b95bdc36c1ed28143e 命令就可以了,后面的d1feb9c8267f9b82f86db9b95bdc36c1ed28143e是主节点6380的ID号码
如果想要变成主节点就需要重新分配槽给这个新节点了。
执行 redis-trib.rb reshard 127.0.0.1:6380 命令这个主节点的IP只能是我们上面创建该节点时候跟着的旧节点的IP地址,否则错误。所以这里大家一定要注意。
这里系统会给我们选择移动槽的个数和移动给节点的ID号码,这里我设置的是移动1000,移动给新节点62aff61bb7ee6adb6131c2b0330545fd690b4843
输入all 表示从所有的主节点中随机转移,凑够1000个哈希槽,然后再输入yes,redis集群就开始分配哈希槽了。查看新节点槽分配情况,发现已经添加好了。
三.删除节点:
删除从节点的话,不需要清空槽,直接就可以删除
redis-trib.rb  del-node 127.0.0.1:6386 62aff61bb7ee6adb6131c2b0330545fd690b4843
最后一个参数为需要删除节点的ID  
删除主节点的话,就需要先清空槽,然后重新分配给原先创建指定的那个节点,最后才能删除。
第一步先移动槽,上面我们分配给这个节点的槽是1000,这里我们也移动1000
redis-trib.rb reshard 127.0.0.1:6386
后面就是输入要分配给哪个节点的ID,这里我们上面是从6380节点分配过来的,所以我们就分配回去,改节点的ID为:62aff61bb7ee6adb6131c2b0330545fd690b4843,最后系统会让我们确实我们要移除节点的ID,这里我们写62aff61bb7ee6adb6131c2b0330545fd690b4843
最后就可以执行
redis-trib.rb  del-node 127.0.0.1:6386 62aff61bb7ee6adb6131c2b0330545fd690b4843
命令来删除节点了,最后一个参数为需要删除的节点ID  
到这边关于redis集群节点的添加就介绍到这边了,如果对上面的内容还有什么疑义或者问题都可以加我QQ:208017534咨询。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值