Redis6.2.5上搭建redis-cluster

248人浏览 / 0人评论

一、下载redis-6.2.5.tar.gz

二、解压安装

解压后执行:make && make install

三、启动六个实例

在/data/redis/redis-cluster下创建6001~6006 6个实例的文件夹,再创建conf文件夹存放所有实例的配置文件

配置文件目录:

配置文件内容:

protected-mode no
#后台启动
daemonize yes
#修改端口号,从6001到6006
port 6001
#开启cluster,去掉注释
cluster-enabled yes
logfile "/data/redis/redis-cluster/6001/redis.log"
dir /data/redis/redis-cluster/6001/
#自动生成
cluster-config-file nodes.conf
#节点通信时间
cluster-node-timeout 15000
#持久化方式
appendonly yes

启动脚本:

killall redis-server;
sleep 3
redis-server /data/redis/redis-cluster/conf/6001.conf
redis-server /data/redis/redis-cluster/conf/6002.conf
redis-server /data/redis/redis-cluster/conf/6003.conf
redis-server /data/redis/redis-cluster/conf/6004.conf
redis-server /data/redis/redis-cluster/conf/6005.conf
redis-server /data/redis/redis-cluster/conf/6006.conf

先使用killall命令停所有的redis-server服务。注意需要先使用yum安装psmisc软件。

四、搭建集群

原命令 redis-trib.rb 这个工具目前已经废弃,使用redis-cli

redis-cli --cluster create --cluster-replicas 1 192.168.131.90:6001 192.168.131.90:6002 192.168.131.90:6003 192.168.131.90:6004 192.168.131.90:6005 192.168.131.90:6006

–cluster-replicas 1:表示希望为集群中的每个主节点创建一个从节点(一主一从)。前3个代表3个master,后3个代表3个slave

–cluster-replicas 2:表示希望为集群中的每个主节点创建两个从节点(一主二从)。

--cluster-replicas 0:表示没有从节点,全部都是主节点

五、查看集群状态

1、连接上任意一台实例,执行cluster info

2、查看集群节点信息

输入cluster nodes,总共有16384个slot

六、集群验证

连接方式:redis-cli -c -p6001

注意:集群连接需要加上-c

set a a,会重定向到6003端口的实例。

七、集群高可用验证

目前6001为master,对应的slave为6004:

如果我们停掉master(6001)会怎么样?

等一会再连接6004:

redis-cli -c -p 6004,查看info,可以看到6004已经是master了,但是没有slave

并且此时集群还是正常使用。

如果我们再把6004停掉会怎么样?

此时我们连接6002实例:redis-cli -c -p 6002,连接成功后执行任意命令:set a a

会发现集群已经挂掉了,说明如果集群中一个master挂掉后,并且此master没有slave,则整个集群都不可用。这是因为集群主库半数宕机了

当我们把6001 和6004都启来后,会发现集群还不是立即可用,但是过一会就可以用了。

全部评论