docker部署redis集群

本文详细介绍了如何通过Docker部署并配置多个Redis节点,形成高可用集群,并指导如何使用redis-cli连接和管理集群,涉及网络创建、容器创建、集群组建及维护等关键步骤。
##-------部署多个redis节点后组成redis集群--------
#拉取redis镜像
docker pull redis

#创建子网
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet
#子网信息
docker network inspect mynet

#创建redis容器
docker create --name redis-node0 --net mynet --ip 172.18.12.70 -v /Users/xiangda/data/redis-data/node0:/data redis --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 7000
docker create --name redis-node1 --net mynet --ip 172.18.12.71 -v /Users/xiangda/data/redis-data/node1:/data redis --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 7001
docker create --name redis-node2 --net mynet --ip 172.18.12.72 -v /Users/xiangda/data/redis-data/node2:/data redis --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 7002
docker create --name redis-node3 --net mynet --ip 172.18.12.73 -v /Users/xiangda/data/redis-data/node3:/data redis --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 7003
docker create --name redis-node4 --net mynet --ip 172.18.12.74 -v /Users/xiangda/data/redis-data/node4:/data redis --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 7004
docker create --name redis-node5 --net mynet --ip 172.18.12.75 -v /Users/xiangda/data/redis-data/node5:/data redis --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 7005

#启动上面创建的redis容器
docker start  redis-node0 redis-node1 redis-node2 redis-node3 redis-node4 redis-node5

#组建集群
docker exec -it redis-node1 /bin/bash
redis-cli --cluster create 172.18.12.70:7000 172.18.12.71:7001 172.18.12.72:7002 172.18.12.73:7003 172.18.12.74:7004 172.18.12.75:7005  --cluster-replicas 1

#退出docker
exit

#让redis集群开机自启动
docker update redis-node0 redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 --restart=always

##----------redis-cli连接redis集群-----------
#安装redis-cli
sudo apt-get install redis-tools

#连接redis集群
redis-cli -c -h 172.18.12.70 -p 7000

#查看集群
cluster nodes

使用 Docker 部署 Redis 集群,可按以下详细步骤操作: ### 1. 配置 Redis 容器和网络 - **创建自定义网络**:使用 `docker network create` 命令创建一个自定义的网络,用于 Redis 集群节点之间的通信。示例命令如下: ```bash docker network create redis-net ``` - **生成配置信息**:在当前目录下生成 `conf` 和 `data` 目录,并为每个节点生成配置文件。以下是一个示例脚本,创建 7001 - 7003 端口的节点配置: ```bash for port in `seq 7001 7003`; do mkdir -p ./${port}/conf \ && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \ && mkdir -p ./${port}/data; done ``` 若不想设置密码,可把 `masterauth` 和 `requirepass` 注释掉 [^4]。 ### 2. 启动 Redis 容器 - **使用 Dockerfile 构建并启动(可选)**:在 `redis` 目录下创建 `Dockerfile` 进行编辑,示例如下: ```dockerfile # 第一阶段:构建阶段 FROM ubuntu:22.04 AS buildstage # 更新包列表并安装必要的构建工具和依赖 RUN apt-get update && apt-get install -y \ build-essential \ wget \ gcc \ g++ \ make \ && rm -rf /var/lib/apt/lists/* # 下载 Redis 源码和配置文件 ADD redis-7.0.15.tar.gz / ADD redis.conf /redis/ # 切换到 Redis 源码目录并编译 WORKDIR /redis-7.0.15 RUN make # 将 Redis 可执行文件移动到指定目录 RUN mv /redis-7.0.15/src/redis-server /redis/ && mv /redis-7.0.15/src/redis-cli /redis/ ENTRYPOINT ["/redis/redis-server", "/redis/redis.conf"] # 第二阶段:运行阶段 FROM ubuntu:22.04 RUN mkdir -p /data/redis && mkdir -p /redis COPY --from=buildstage /redis /redis EXPOSE 6379 ENTRYPOINT ["/redis/redis-server", "/redis/redis.conf"] ``` 构建并启动容器。 - **直接使用 Docker 命令启动**:使用 `docker run` 命令启动 Redis 容器,挂载配置文件和数据卷。示例命令如下: ```bash for port in `seq 7001 7003`; do docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \ -v /opt/redis/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \ -v /opt/redis/${port}/data:/data \ --restart always --name redis-${port} --net redis-net \ --sysctl net.core.somaxconn=1024 redis:6.0.5-alpine redis-server /usr/local/etc/redis/redis.conf; done ``` 此命令会创建 3 个 Redis 容器,分别监听 7001 - 7003 端口 [^2][^4]。 ### 3. 设置 Redis 集群 - **创建集群**:使用 `redis-cli` 工具创建 Redis 集群。在创建过程中可能会遇到异常,需要进行相应处理。 - **集群创建异常处理**:若创建过程中出现问题,需根据具体错误信息进行排查和修复,如检查网络连接、配置文件是否正确等 [^1]。 ### 4. 验证和测试 - **数据测试**:通过 `redis-cli` 连接到集群中的一个节点,进行数据的读写操作,验证集群是否正常工作。 - **集群上下线测试**:模拟节点的上线和下线操作,检查集群的容错能力和数据迁移情况 [^1]。 ### 5. 部署总结 完成上述步骤后,对整个部署过程进行总结,检查是否达到预期效果,如有需要可进行调整和优化 [^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值