Docker搭建redis集群(三主三从)【图文详解】

31 篇文章 2 订阅
8 篇文章 2 订阅

        近来闲暇时在自己电脑上搭建了redis集群测试了一下,特在此总结,方便你我他;

        本文示例所存放的redis集群路径,若你的路径与我一致那么就很简单啦,一步步复制即可实现;

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

.
├── 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 "\n"
#输入信息
read -p "请把输入要启动的docker容器名称,默认redis-cluster-7001:" DOCKER_NAME
#判断是否为空
if [ ! $DOCKER_NAME ]; 
	then DOCKER_NAME='redis-cluster-7001'; 
fi

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

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

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

docker network create redis-net

这里本地测试就不一一在防火墙开放所有端口了,本文本地测试 防火墙处于关闭状态;关于防火墙的更多操作可戳如下链接:

【黑客必备】Linux系统中防火墙Firewall操作详解(附上图示及说明)【一看就懂】_hah杨大仙的博客-CSDN博客_linux防火墙教程


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

| 为脚本文件添加权限

chmod +x redis.sh 

当前路径下执行脚本文件

./redis.sh

可能遇到的错误:

【解决】/bin/bash^M: 坏的解释器: 文本文件忙

即可看到如下信息:

若您安装了docker可视化界面portainer,则可在可视化界面看到成功启动的6个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

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

| 查看集群是否创建成功

进入集群并查看信息

redis-cli -p 7001 -c
cluster nodes

| 如下所示即为成功

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

cluster info

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

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

(有问题的小伙伴留言即可,看到会帮忙解决)

..


一些可能会遇到的错误:

【解决】Waiting for the cluster to join...配置redis集群时的坑_hah杨大仙的博客-CSDN博客


Thanks

..

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
通过docker搭建Redis集群的步骤如下: 1. 创建容器:使用docker命令创建多个Redis容器,每个容器代表一个节点。例如,可以使用以下命令创建一个名为redis-node-1的节点容器: ``` docker run --name redis-node-1 -p 6381:6379 -d redis ``` 2. 进入容器:使用docker exec命令进入容器内部,例如,可以使用以下命令进入redis-node-1容器: ``` docker exec -it redis-node-1 /bin/bash ``` 3. 构建集群关系:在容器内部,使用Redis命令行工具,将新增的节点作为master节点加入原集群。例如,可以使用以下命令将节点redis-node-7加入集群: ``` redis-cli -p 6381 cluster add-node <new_node_ip:port> <existing_node_ip:port> ``` 4. 查看集群状态:使用Redis命令行工具查看集群的状态。例如,可以使用以下命令在节点redis-node-1上查看集群信息: ``` redis-cli -p 6381 cluster info ``` 通过以上步骤,你可以使用docker搭建Redis集群,并查看集群的状态。请根据实际情况进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [阿昌教你通过docker搭建Redis集群](https://blog.csdn.net/qq_43284469/article/details/122458602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hah杨大仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值