Docker搭建Redis-cluster集群实践以及遇到问题Waiting for the cluster to join...

本文详细介绍了如何使用Docker搭建Redis-cluster集群,包括编写Redis配置文件,创建容器以及创建集群的步骤。在创建过程中,遇到集群状态一直显示'Waiting for the cluster to join...'的问题,原因是集群通信端口未开放。解决方案是确保在创建容器时,也将通信端口映射出来,以便集群能正常通信。
摘要由CSDN通过智能技术生成

Docker搭建Redis-cluster集群

编写Redis配置文件

#创建目录
mkdir -p /usr/local/docker-redis/redis-cluster
#切换至指定目录
cd /usr/local/docker-redis/redis-cluster/
#编写 redis-cluster.tmpl 文件
vi redis-cluster.tmpl
port ${PORT}
#开放端口访问
bind 0.0.0.0
#秘密访问
requirepass root
masterauth root
protected-mode no
daemonize no
appendonly yes
#打开集群
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 10.176.123.54
cluster-announce-port ${PORT}
#集群通信端口
cluster-announce-bus-port 1${PORT}

在redis-cluster目录下面执行下面命令,创建7001-7006相关目录和文件

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

创建容器

将宿主机的7001~7006端口与redis容器映射,并将宿主机的目录与容器内的目录进行映射(挂载)

Docker Compose 是一种工具,它允许开发者通过简单的 YAML 文件定义并管理复杂的多容器应用服务,包括 Redis 集群。下面是如何使用 Docker Compose 来搭建 Redis Cluster 的基本步骤: 1. **创建 `docker-compose.yml`** 文件:这个文件会描述所有需要的服务(例如 Redis 节点),以及它们之间的网络配置。一个典型的配置可能如下所示: ```yaml version: '3' services: redis-node1: image: redis:alpine environment: - REDIS_CLUSTER_MYSELF=0 - REDIS_CLUSTER_PORT=7000 - REDIS_CLUSTER_ADDR=redis-node2:7000,redis-node3:7000 networks: - cluster-net redis-node2: image: redis:alpine environment: - REDIS_CLUSTER_MYSELF=1 - REDIS_CLUSTER_PORT=7001 - REDIS_CLUSTER_ADDR=redis-node1:7000,redis-node3:7000 networks: - cluster-net redis-node3: image: redis:alpine environment: - REDIS_CLUSTER_MYSELF=2 - REDIS_CLUSTER_PORT=7002 - REDIS_CLUSTER_ADDR=redis-node1:7000,redis-node2:7000 networks: - cluster-net networks: cluster-net: ``` 2. **启动集群**: 在项目根目录下运行 `docker-compose up`。这将会创建并启动指定的三个 Redis 节点,它们之间会自动建立连接形成一个 Redis 集群。 3. **验证集群状态**: 使用 Redis 客户端工具如 `redis-cli`, 连接到任意节点(比如 node1)并键入 `CLUSTER NODES`命令检查集群的状态。 4. **设置客户端连接**:如果你的应用需要连接到 Redis 集群,只需将集群地址(例如 `redis://<node1_ip>:7000`)作为配置传递给应用程序即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值