ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

linux部署redis集群cluster(主从)

2021-12-05 11:59:31  阅读:151  来源: 互联网

标签:redis 节点 cluster conf linux 7001 port


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有