Rsdis Clust 集群部署-添加、删除新节点

一、环境部署

我们已经部署好了redis cluster集群 3主3从,详情查看:http://t.csdn.cn/tG4Ii

现在我们要新加入一主一从:我们再新添加一台机器,然后设置俩个redis

主:192.168.126.142:7006

从:192.168.126.142:7007

二、redis cluster集群添加节点

1、新机器安装redis

安装redis请看:http://t.csdn.cn/2U6tt

2、修改配置文件

我们这里修改配置文件的内容是和上篇的部署集群的一样,可以看上篇的文章:​http://t.csdn.cn/tG4Ii​

这里重新部署

[root@redis-4 redis]# pwd
/data/redis
[root@redis-4 redis]# mkdir cluster

[root@redis-4 redis]# mkdir cluster/7006
[root@redis-4 redis]# mkdir cluster/7007
[root@redis-4 redis]# mkdir data

[root@redis-4 redis]# cp redis.conf cluster/7006/
[root@redis-4 redis]# cp redis.conf cluster/7007/

修改配置文件,内容太多我这里只列出要修改的

[root@redis-4 redis]# vim cluster/7006/redis.conf


bind 192.168.126.142  #每个实例的配置文件修改为对应节点的ip地址  本机的ip
port 7006   #监听端口,运行多个实例时,需要指定规划的每个实例不同的端口号
daemonize yes #redis后台运行
pidfile /var/run/redis_7006.pid #pid文件,运行多个实例时,需要指定不同的pid文件
logfile /var/log/redis_7006.log #日志文件位置,运行多实例时,需要将文件修改的不同。
dir /data/redis/data #存放数据的目录
appendonly yes #开启AOF持久化,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
appendfilename "appendonly.aof"  #AOF文件名称
appendfsync everysec #表示对写操作进行累积,每秒同步一次
以下为打开注释并修改
cluster-enabled yes #启用集群
cluster-config-file nodes-7006.conf #集群配置文件,由redis自动更新,不需要手动配置,运行多实例时请注修改为对应端口
cluster-node-timeout 5000 #单位毫秒。集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
cluster-replica-validity-factor 10 #在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。(计算方法为:cluster-node-timeout * cluster-replica-validity-factor,此处为:5000 * 10 毫秒)
cluster-migration-barrier 1 #一个主机将保持连接的最小数量的从机,以便另一个从机迁移到不再被任何从机覆盖的主机
cluster-require-full-coverage yes #集群中的所有slot(16384个)全部覆盖,才能提供服务
[root@redis-4 redis]# vim cluster/7007/redis.conf

bind 192.168.126.142  #每个实例的配置文件修改为对应节点的ip地址
port 7007   #监听端口,运行多个实例时,需要指定规划的每个实例不同的端口号
daemonize yes #redis后台运行
pidfile /var/run/redis_7007.pid #pid文件,运行多个实例时,需要指定不同的pid文件
logfile /var/log/redis_7007.log #日志文件位置,运行多实例时,需要将文件修改的不同。
dir /data/redis/data #存放数据的目录
appendonly yes #开启AOF持久化,redis会把所接收到的每一次写操作请求都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态。
appendfilename "appendonly.aof"  #AOF文件名称
appendfsync everysec #表示对写操作进行累积,每秒同步一次
以下为打开注释并修改
cluster-enabled yes #启用集群
cluster-config-file nodes-7007.conf #集群配置文件,由redis自动更新,不需要手动配置,运行多实例时请注修改为对应端口
cluster-node-timeout 5000 #单位毫秒。集群节点超时时间,即集群中主从节点断开连接时间阈值,超过该值则认为主节点不可以,从节点将有可能转为master
cluster-replica-validity-factor 10 #在进行故障转移的时候全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了导致数据过于陈旧,不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。(计算方法为:cluster-node-timeout * cluster-replica-validity-factor,此处为:5000 * 10 毫秒)
cluster-migration-barrier 1 #一个主机将保持连接的最小数量的从机,以便另一个从机迁移到不再被任何从机覆盖的主机
cluster-require-full-coverage yes #集群中的所有slot(16384个)全部覆盖,才能提供服务

启动redis

[root@redis-4 redis]# nohup ./src/redis-server ./cluster/7006/redis.conf &
[root@redis-4 redis]# nohup ./src/redis-server ./cluster/7007/redis.conf &

 

3、添加主节点

[root@redis-4 redis]# ./src/redis-cli --cluster add-node 192.168.126.142:7006 192.168.126.140:7000

 这是把7006端口的redis作为主节点添加到集群中,写7000端口的redis,是因为这个redis在集群中而且是主节点,换成其他的主节点也行

没有保存,然后我们查看一下集群信息,在任何一台机器都可以查看

添加成功

4、给主节点分配hash槽

[root@redis-4 redis]# ./src/redis-cli --cluster reshard 192.168.126.142:7006

然后我们在其他机器上查看node ID

复制上去

选则all  是自动从其他master里分,选done则是自定义

然后点yes即可

可以看到已经有了hash槽

5、把从节点添加到主节点上

[root@redis-4 redis]# ./src/redis-cli --cluster add-node 192.168.126.142:7007 192.168.126.142:7006 --cluster-slave --cluster-master-id 9255d860655b2b08f3c742610419b472241787c7

把7007的 作为slave  添加到7006上   后面是7006的node ID

查看集群信息

成功

三、redis cluster 集群删除节点

所有机器退出redis

1.删除从节点

要想删除主节点,要先删除从节点,在任意一节点操作即可

[root@redis-4 redis]# ./src/redis-cli --cluster del-node 192.168.126.142:7007 dbc4c7eddc2221bacee5ccd6a2b49ffaf6e7e319

可以看到7007的redis已经没了

2.移除主节点的hash槽

我们先查看7006的redis的hash槽有多少

[root@redis-1 redis]# ./src/redis-cli --cluster info 192.168.126.140:7000
192.168.126.140:7000 (7b04bc70...) -> 1 keys | 4096 slots | 1 slaves.
192.168.126.139:7004 (43674f03...) -> 1 keys | 4096 slots | 1 slaves.
192.168.126.139:7005 (df87292a...) -> 1 keys | 4096 slots | 1 slaves.
192.168.126.142:7006 (9255d860...) -> 1 keys | 4096 slots | 0 slaves.
[OK] 4 keys in 4 masters.
0.00 keys per slot on average.

4096个分给三个我们给7000端口的1365个     7002的1365个   7004的1366个

分给7000

[root@redis-4 redis]# ./src/redis-cli --cluster reshard 192.168.126.142:7006 --cluster-from 9255d860655b2b08f3c742610419b472241787c7 --cluster-to 7b04bc70679ba921bdd2e1c35087b945eb70b9eb --cluster-slots 1365 --cluster-yes

第一个node ID 是7006的  第二个是 7000的 

分给7002,把7000的node id 换成7002的

[root@redis-4 redis]# ./src/redis-cli --cluster reshard 192.168.126.142:7006 --cluster-from 9255d860655b2b08f3c742610419b472241787c7 --cluster-to a7ef2ff511cd7a877b777bcba41c2cb2632658fe --cluster-slots 1365 --cluster-yes

 分给7004

[root@redis-4 redis]# ./src/redis-cli --cluster reshard 192.168.126.142:7006 --cluster-from 9255d860655b2b08f3c742610419b472241787c7 --cluster-to 43674f035bb56e69708c17dc9a636d88c5df4b15 --cluster-slots 1365 --cluster-yes

3.删除主节点

[root@redis-4 redis]# ./src/redis-cli --cluster del-node 192.168.126.142:7006 9255d860655b2b08f3c742610419b472241787c7

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值