当前位置:   article > 正文

【docker】部署redis集群(3主3从)_docker 搭建redis集群 三主三从

docker 搭建redis集群 三主三从

步骤1:拉取Redis镜像

docker pull redis:latest # 使用最新稳定版,也可以指定特定版本
  • 1

步骤2:创建Docker网络(可选但推荐)

docker network create redis-cluster-net
  • 1

步骤3:启动Redis主节点

for i in 1 2 3; do
    docker run -d --name redis-master-$i \
        --network redis-cluster-net \
        -p 6379${i}:6379 \
        -v /path/to/redis-data/master-$i:/data \
        redis:latest \
        --appendonly yes \
        --protected-mode no \
        --port 6379 \
        --cluster-enabled yes \
        --cluster-config-file nodes.conf \
        --cluster-node-timeout 5000
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这里需要注意:

  • -p 6379${i}:6379 指定了对外暴露的端口,其中637916379263793分别是三个主节点的不同端口。
  • -v /path/to/redis-data/master-$i:/data 是数据持久化,将容器内的/data目录映射到宿主机的一个目录上,防止容器销毁后数据丢失。
  • --protected-mode no 关闭保护模式,集群间的节点需要互相连接,所以需要禁用保护模式(生产环境中请谨慎考虑安全性)。

步骤4:启动Redis从节点

for i in 1 2 3; do
    docker run -d --name redis-replica-$i \
        --network redis-cluster-net \
        -p 6380${i}:6379 \
        -v /path/to/redis-data/replica-$i:/data \
        redis:latest \
        --appendonly yes \
        --protected-mode no \
        --port 6379 \
        --cluster-enabled yes \
        --cluster-config-file nodes.conf \
        --cluster-node-timeout 5000
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

步骤5:初始化Redis集群

首先,需要获取各个容器的IP地址,可以使用 docker inspect 命令获得。

然后,进入其中一个主节点的容器内部,执行集群创建命令:

docker exec -it redis-master-1 redis-cli --cluster create \
    master1_ip:6379 \
    master2_ip:6379 \
    master3_ip:6379 \
    replica1_ip:6379 \
    replica2_ip:6379 \
    replica3_ip:6379 \
    --cluster-replicas 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里的 masterX_ipreplicaX_ip 应该替换为相应的容器IP地址。

步骤6:确认集群状态

在集群初始化之后,可以检查集群状态确保所有节点已加入:

docker exec -it redis-master-1 redis-cli -c --cluster check master1_ip:6379
  • 1

请注意,实际部署时可能需要根据实际情况调整端口映射、数据卷映射以及集群配置参数。在生产环境中,还应当考虑配置哨兵模式以实现高可用性和故障转移。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/499788
推荐阅读
相关标签
  

闽ICP备14008679号