Docker搭建redis集群(三主三从)「图文详解」

Docker搭建redis集群(三主三从)「图文详解」

创建 redis-cluster.tmpl 文件在你要存放集群的目录下

Docker搭建redis集群(三主三从)「图文详解」

.

├── redis-cluster.tmpl

└── redis.sh

创建redis-cluster.tmpl文件

只需 将文件中的 ip地址 修改为 你的ip地址 即可

#端口
port ${PORT}

#非保护模式
protected-mode no

#启用集群模式
cluster-enabled yes

cluster-config-file nodes-6379.conf

#超时时间
cluster-node-timeout 15000

#集群各节点IP地址,记得修改为你的ip地址
cluster-announce-ip 192.168.21.128

#集群节点映射端口
cluster-announce-port ${PORT}

#集群总线端口
cluster-announce-bus-port 1${PORT}

#开启aof持久化策略
appendonly yes

#后台运行
#daemonize yes

#进程号存储
pidfile /var/run/redis_${PORT}.pid

#外部访问
bind 0.0.0.0

#集群加密
#masterauth itheima

#requirepass itheima

创建 redis.sh 脚本文件

无需对文件内容做任何操作

#!/bin/bash
#在/opt/docker/redis/cluster/下生成conf和data目标,并生成配置信息
for port in `seq 7001 7006`;
do
mkdir -p ./${port}/conf && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf && mkdir -p ./${port}/data;
done

#创建6个redis容器
for port in `seq 7001 7006`;
do
docker run -d -it -p ${port}:${port} -p 1${port}:1${port} -v /opt/docker/redis/cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /opt/docker/redis/cluster/${port}/data:/data --privileged=true --restart always --name redis-cluster-${port} --net redis-net --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf;
done

#查找ip
for port in `seq 7001 7006`;
do
echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-cluster-${port}")":${port}" ";
done

#换行
echo -e "
"
#输入信息
read -p "请把输入要启动的docker容器名称,默认redis-cluster-7001:" DOCKER_NAME
#判断是否为空
if [ ! $DOCKER_NAME ];
then DOCKER_NAME='redis-cluster-7001';
fi

#换行
echo -e "
"
#进入容器
docker exec -it redis-cluster-7001 /bin/bash

创建完成后应为如下图所示:

Docker搭建redis集群(三主三从)「图文详解」

在执行脚本命令之前还需定义redis网络:

docker network create redis-net

这里本地测试就不一一在防火墙开放所有端口了,本文本地测试防火墙处于关闭状态

执行命令后即可看到如下图所示效果:

Docker搭建redis集群(三主三从)「图文详解」

为脚本文件添加权限

chmod +x redis.sh

Docker搭建redis集群(三主三从)「图文详解」

当前路径下执行脚本文件

./redis.sh

即可看到如下信息:

Docker搭建redis集群(三主三从)「图文详解」

若您安装了docker可视化界面portainer,则可在可视化界面看到成功启动的6个redis容器

Docker搭建redis集群(三主三从)「图文详解」

也可以看到刚刚定义的网络信息

Docker搭建redis集群(三主三从)「图文详解」

接下来进行集群配置

ps:在任意容器内都可执行(这里就顺便在默认进入的容器进行集群配置)

redis-cli --cluster create 172.18.0.2:7001 172.18.0.3:7002 172.18.0.4:7003 172.18.0.5:7004 172.18.0.6:7005 172.18.0.7:7006 --cluster-replicas 1

Docker搭建redis集群(三主三从)「图文详解」

按图示操作执行完成后可看到如下界面 :

Docker搭建redis集群(三主三从)「图文详解」

查看集群是否创建成功

进入集群并查看信息

redis-cli -p 7001 -c

cluster nodes

|如下所示即为成功

Docker搭建redis集群(三主三从)「图文详解」

|也可使用cluster info查看集群信息

cluster info

Docker搭建redis集群(三主三从)「图文详解」

若没有安装可视化界面的朋友也可通过docker ps查看正在运行的redis集群

Docker搭建redis集群(三主三从)「图文详解」

到此redis集群搭建就算成功啦!good luck!




原文链接:https://blog.csdn.net/m0_55710969/article/details/124130885

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章