数据库
首页 > 数据库> > linux部署redis集群cluster(主从)

linux部署redis集群cluster(主从)

作者:互联网

linux部署redis集群cluster主从模式

一、docker拉取一个redis镜像

博主拉的是最新版的redis镜像
直接通过docker pull redis就可以

二、创建一个保存redis挂在文件的文件夹

博主创建的是mkdir /mydata/redis文件夹

三、创建6个redis集群节点

博主通过一个脚本快速创建出6个redis容器
cd /mydata/redis目录下执行一下脚本即可(ip需改成自己的虚拟机地址,端口可自行设定)

for port in $(seq 7001 7006); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.137.200
cluster-announce-port ${port}
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} \
   -v /mydata/redis/node-${port}/data:/data \
   -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
   -d redis redis-server /etc/redis/redis.conf; \
done

在这里插入图片描述
执行docker ps查看一下redis进程
在这里插入图片描述
这样就启动成功啦,但是我们此时还只是6个redis单节点,并没有把他们联合起来。

四、创建三主三从的集群模式

我们可以进入到一个redis容器中,用集群命令创建出一个redis集群
博主选择进入7001节点的redis容器

docker exec -it redis-7001 bash

接着执行(ip需改成自己的,端口也是)

redis-cli --cluster create 192.168.137.200:7001 192.168.137.200:7002 192.168.137.200:7003 \
192.168.137.200:7004 192.168.137.200:7005 192.168.137.200:7006 --cluster-replicas 1

在这里插入图片描述
我们可以看到7001为master节点,7006为slave节点,7004为master节点,7003为slave节点,7002为master节点,7005为slave节点。
此时就创建完成了

五、测试

此时连接7001的redis测试,发现它会计算hash槽的位置,来存放值
在这里插入图片描述
并且可以执行cluster info命令查看集群状态
cluster nodes查看集群节点
在这里插入图片描述

5.1、测试主从模式

我们可以关闭7001节点的redis,看7006是否接替为master节点
在这里插入图片描述
我们可以进入7002节点的redis查看,发现7001节点宕机了,7006成功替换为master节点
在这里插入图片描述
此时我们重新启动7001节点的redis容器
再次查看集群状态
在这里插入图片描述
发现启动好的7001容器变为了slave节点。

标签:redis,节点,cluster,conf,linux,7001,port
来源: https://blog.csdn.net/qq_45887180/article/details/121727205