搭建Redis三主三从集群
Redis三主三从集群规划
10.0.128.19 使用端口 7000 7001
10.0.128.22 使用端口 7002 7003
10.0.128.23 使用端口 7004 7005
安装redis及依赖包 (3台)
下载安装包 https://redis.io/
tar xf 下载的源码包 解压到/data/redis-5.0.5
1 yum -y install tcl gcc 2 cd /data/redis-5.0.5 3 make MALLOC=libc 4 cd src 5 make test 6 make install
关闭防火墙
systemctl status firewalld systemctl disable firewalld
修改配置文件
节点1
mkdir -p /data/redis-5.0.5/cluster/7000
mkdir -p /data/redis-5.0.5/cluster/7001
节点2
mkdir -p /data/redis-5.0.5/cluster/7002
mkdir -p /data/redis-5.0.5/cluster/7003
节点3
mkdir -p /data/redis-5.0.5/cluster/7004
mkdir -p /data/redis-5.0.5/cluster/7005
配置文件分别拷贝到3个节点的6个文件夹里
cp /data/redis-5.0.5/redis.conf /data/redis-5.0.5/cluster/700X
修改配置文件, 并将修改后的配置文件复制到6个文件夹,并改相应端口和IP
1 cp /data/redis-5.0.5/redis.conf /data/redis-5.0.5/cluster/7000/ 2 vi /data/redis-5.0.5/cluster/7000/redis.conf
port 6379 >更改> port 7000
bind 127.0.0.1 >更改> bind 10.0.128.19
daemonize no >更改> daemonize yes
pidfile /var/run/redis_6379.pid >更改> pidfile /var/run/redis_7000.pid
cluster-enabled yes >更改> cluster-enabled yes
cluster-config-file nodes-6379.conf >更改> cluster-config-file nodes-7000.conf
cluster-node-timeout 15000 >更改> cluster-node-timeout 15000
appendonly no >更改> appendonly yes
启动服务
分别在三个节点启动服务,每个节点启动2个,共6个,注意替换700X
redis-server /data/redis-5.0.5/cluster/700X/redis.conf
创建集群
redis-cli --cluster create 前三个是主节点 后三个是从节点 --cluster-replicas 1
replicas 1 表示我们希望为集群中的每个主节点创建一个从节点
redis-cli --cluster create 10.0.128.19:7000(节点1的主) 10.0.128.22:7002(节点2的主) 10.0.128.23:7004(节点3的主) 10.0.128.19:7001(节点1的从) 10.0.128.22:7003(节点2 的从) 10.0.128.23:7005(节点3的从) --cluster-replicas 1
查看属性
直接执行
redis-cli -h 10.0.128.19 -p 7001 cluster nodes查看节点情况
进命令行执行
[root@VM_0_22_centos 7003]# redis-cli -h 10.0.128.19 -p 7000 -c 10.0.128.19:7000> cluster info 10.0.128.19:7000> cluster nodes (查看主备分配是否正确)
高可用测试
重启某一节点后,查看集群状态是否正常。
可以关闭某一个主节点,比如:10.0.128.19的7000 节点,然后进行查看主从分配状态,查看7000的主节点状态是否master,fail的状态,再次启动7000节点查看7000节点状态
创建集群后,想要重新指定节点为master或者slave
把集群节点全部停止服务,然后删除每台节点aof、rdb、nodes.conf文件删除(友情建议:备份后再删除),然后再重新执行创建集群的命令,按照自己需求重新指定主从节点。