docker部署Redis集群,主从集群搭建

Docker搭建Redis集群

注:本次是在同一主机的docker容器内,不同主机部署同理,集群redis的IP替换即可。适用于redis 5.0.0 以上,旧程序需要高版本的redis才能使用

1、docker 拉取 redis

docker search redis
docker pull redis

2、创建6个redis 容器和一个主容器(主要为创建集群使用)
此处需要指定docker的network进行容器互通

① docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5001-data:/data  --name redis-5001 redis --port 5001 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
② docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/programs/redis-cluster/redis-5002-data:/data  --name redis-5002 redis --port 5002 --cluster-enabled yes --cluster-config-file nodes.conf --cluster-node-timeout 30000 --appendonly yes 
③ docker run -dit --network rdzn --restart always -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/p
<think>好的,用户想了解如何使用Docker部署Redis主从集群的方法和配置示例。首先,我需要回忆一下DockerRedis主从集群的相关知识。记得Docker Compose可以方便地定义和运行多容器应用,而Redis主从集群需要配置主节点和多个从节点,从节点复制主节点的数据。 接下来,我应该查看用户提供的引用内容,特别是引用[1]、[2]、[3]、[4]和[5]。引用[1]提到了进入包含docker-compose.yml的目录并执行命令启动集群,这说明使用Docker Compose是关键步骤。引用[3]提到每个主节点有一个从节点,确保高可用性和可伸缩性。引用[4]和[5]涉及哨兵模式,但用户当前的问题可能只需要主从结构,哨兵可能作为后续扩展。 用户需要具体的配置示例,所以我要提供一个docker-compose.yml的示例,包含主节点和两个从节点。主节点的配置需要设置requirepass,从节点则通过replicaof指令连接到主节点,并设置masterauth密码。同时,确保各个容器在同一个网络中,端口不冲突。 另外,需要确保步骤清晰,比如创建目录、编写YAML文件、启动服务、验证状态和连接测试。验证部分可以用docker ps检查容器状态,进入主节点执行info replication查看复制信息。可能还需要提醒用户关于持久化数据卷和密码安全的问题,如引用[3]提到的集群的高可用性。 最后,生成相关问题时要覆盖用户可能进一步的需求,比如哨兵部署集群模式、数据持久化和性能优化,参考引用[2]和[4]提到的内容。确保回答结构符合要求,使用正确的LaTeX格式,比如$...$和$$...$$,但当前问题中可能涉及较少的数学公式,但如果有的话需要正确应用。</think>### 使用Docker部署Redis主从集群的方法 #### 1. 创建Docker Compose配置文件 在项目目录中新建`docker-compose.yml`文件,配置Redis主节点和从节点: ```yaml version: '3.8' services: redis-master: image: redis:latest container_name: redis-master ports: - "6379:6379" volumes: - ./master-data:/data command: redis-server --requirepass yourpassword networks: - redis-network redis-slave1: image: redis:latest container_name: redis-slave1 ports: - "6380:6379" volumes: - ./slave1-data:/data command: > redis-server --replicaof redis-master 6379 --masterauth yourpassword depends_on: - redis-master networks: - redis-network redis-slave2: image: redis:latest container_name: redis-slave2 ports: - "6381:6379" volumes: - ./slave2-data:/data command: > redis-server --replicaof redis-master 6379 --masterauth yourpassword depends_on: - redis-master networks: - redis-network networks: redis-network: driver: bridge ``` #### 2. 启动集群 执行以下命令启动容器: ```bash docker-compose up -d # 引用[1] ``` #### 3. 验证部署状态 通过以下命令检查主从关系: ```bash docker exec -it redis-master redis-cli -a yourpassword info replication ``` 输出应包含`role:master`和`connected_slaves:2`[^3] #### 4. 测试数据同步 在主节点写入数据: ```bash docker exec -it redis-master redis-cli -a yourpassword set testkey "hello" ``` 在从节点验证: ```bash docker exec -it redis-slave1 redis-cli -a yourpassword get testkey ``` ### 配置说明 - **主节点认证**:`--requirepass`设置主节点密码 - **从节点配置**:`--replicaof`指定主节点地址和端口 - **网络隔离**:使用自定义网络`redis-network`保证容器通信 - **数据持久化**:通过volume挂载实现数据存储[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值