一、添加集群子节点
1、复制的redis配置文件更改其配置,目录与配置文件和其它节点类似。
redis_7003.conf、redis_7004.conf 这两个redis配置文件启动生产的redis实例将要作为从,redis_7005.conf将要添加为主 。
2、添加从配置以及添加主的配置
从的配置:
启动7003、7004两个redis实例
命令如下:
//启动7003redis实例 #./src/redis-server /opt/redis-cluster/redis_7003.conf //启动7004redis实例 #./src/redis-server /opt/redis-cluster/redis_7004.conf //进入cd目录执行cli命令目录用于执行 ./redis-cli 命令 #cd src //添加7003作为7000的从 #./redis-cli -p 7003 cluster meet 127.0.0.1 7000 //添加7004作为7001的从 #./redis-cli -p 7004 cluster meet 127.0.0.1 7001 //查看集群信息 ./redis-cli -p 7000 cluster nodes
节点的信息
发现节点是随机加的
删除节点
命令:./redis-trib.rb del-node host:port slave-ID
#./redis-trib.rb del-node 127.0.0.1:7000 17ad4f3eacb3990c0a95f81d0fed77d5d0365482 #./redis-trib.rb del-node 127.0.0.1:7001 36c05037f96d5c55663bcccd83ead8e38fcf8fb2
我们去指定某个主对应的从
(将127.0.0.1:7003 节点添加到 127.0.0.1:7000所在集群里)
./redis-trib.rb add-node --slave --master-id 955d8972d211bab1477b1efa92a7fd621fad2cd8 127.0.0.1:7003 127.0.0.1:7000
添加主节点
#./redis-trib.rb add-node 127.0.0.1:7005 127.0.0.1:7000
删除主节点
因为主节点含有槽数,所以,首先要把节点中的哈希槽转移到其他节点中,
注意:
1、新加入的主redis 是没有槽数的,只有初始化集群的时候,才会根据主的数据分配好,如新增的主节点,需要手动分配
执行命令
//查看节点信息 #./redis-cli -p 7000 cluster nodes //分配槽数 #./redis-trib.rb reshard 127.0.0.1:7001
这是我分配好7005主节点的槽数
下面我将7005在转移到7000内,并将7005删除
命令如下:
#./redis-trib.rb del-node 127.0.0.1:7005 6b0e386d6e5b68f61a99e55c39a934b0d4561c4f
如不清楚主节点槽的话将报错
添加集群从节点遇到这种错误:
是因为用了./redis-cli -p 7004 cluster meet 127.0.0.1 7001 然后在添加
#./redis-trib.rb add-node --slave --master-id 430535468076219892f2d668f7242e1c2fefe73f 127.0.0.1:7003 127.0.0.1:7000
导致的,如下如图,我又重新试了 确定了一下
解决方案:
1、删除appendonlv.aof文件,删除dump.rdb(此文件当使用redis 才会有即set key 123,如果是没有对其操作,默认没有,就不需要删除)
这里解释一下dump.rdb文件:
dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。
2、删除redis_7000.pid、7001、7002、7003、7004、7005所有的pid文件
3、执行关闭
pkill redis停止之前的redis进程 【pkill -9 redis】
//执行以下命令来关闭redis进程 #pkill -9 redi
执行关闭redis之后查看关闭成功
虽然上面集群列表有此redis实例,但是应该执行
#./redis-trib.rb check 127.0.0.1:7002
查看redis集群服务