WSL2+docker+redis 集群部署(1主2从)

该博客介绍了如何利用docker-compose配置redis的主从复制。首先创建了包含master和两个slave的redis数据卷,然后在docker-compose.yml文件中设置各实例的端口映射和数据卷挂载。通过指定命令行参数,使slave成为master的副本。执行`docker-compose up -d`启动服务,最终验证所有redis节点间的同步成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上文 WSL2+docker+redis 数据卷挂载部署 继续学习

将redis的数据卷拷贝三份,7001是master,7002和7003是slave,
将它们放在一个新的文件夹redis-cluster中,则redis-cluster_default将作为compose的网络名
然后在一旁新建一个docker-compose.yml文件:
在这里插入图片描述
分别将三个redis数据卷中的配置文件的端口改成7001、7002、7003(过程略)

重点来了,编写docker-compose.yml:

version: '3.1'
services:

  master:
    image: redis
    container_name: redis-master
    ports:
      - 7001:7001
    volumes:
      - ./redis7001:/usr/local/etc/redis
    command: redis-server /usr/local/etc/redis/redis.conf
    
  slave1:
    image: redis
    container_name: redis-slave1
    ports:
      - 7002:7002
    volumes:
      - ./redis7002:/usr/local/etc/redis
    command: redis-server /usr/local/etc/redis/redis.conf --slaveof master 7001
    
  slave2:
    image: redis
    container_name: redis-slave2
    ports:
      - 7003:7003
    volumes:
      - ./redis7003:/usr/local/etc/redis
    command: redis-server /usr/local/etc/redis/redis.conf --slaveof master 7001

重点在于slave 的 command指令:

command: redis-server /usr/local/etc/redis/redis.conf --slaveof master 7001

保存yml文件,在redis-cluster中运行命令:

docker-compose up -d

在这里插入图片描述
查看日志,运行成功:
在这里插入图片描述

在管理工具中能够成功连接三个redis,测试在master插入一个num,三个redis能够同步:
在这里插入图片描述

### 启动和配置Redis容器 在WSL2环境中利用Docker启动并配置Redis容器涉及几个关键步骤,包括但不限于设置环境变量、定义持久化存储路径以及指定端口映射。对于Ubuntu 20.04.4 LTS操作系统,在已经成功拉取最新的Redis镜像之后,可以按照如下方法操作。 为了确保数据的安全性和持久性,建议预先建立用于挂载的数据目录[^1]。这一步骤至关重要,因为它允许将容器内的特定文件夹绑定到本地磁盘上的位置,从而实现即使容器被删除也能保留重要数据的目的。 接着,通过`docker run`命令来启动Redis服务,并将其暴露给外部网络以便其他应用程序能够访问它。具体来说,可以通过下面这条命令完成: ```bash docker run --name my-redis -p 6379:6379 -v /path/to/local/dir:/data -d redis:latest redis-server --appendonly yes ``` 上述命令中的参数解释如下: - `--name my-redis`: 给新创建的容器命名; - `-p 6379:6379`: 将宿机的6379端口映射至容器内部相同的端口号上; - `-v /path/to/local/dir:/data`: 设置卷挂载点,其中`/path/to/local/dir`应替换为实际想要使用的绝对路径名; - `-d redis:latest`: 使用官方仓库里的最新版Redis作为基础镜像运行后台守护进程模式下的服务器实例; - `redis-server --appendonly yes`: 开启AOF(Append Only File)日志记录功能以增强数据恢复能力[^4]。 值得注意的是,如果希望从Windows系统中存取位于Linux子系统的资源,则需注意两者间不同的文件系统结构差异。例如,在指定期望挂载的目标地址时,应当采用适用于当前工作环境的有效表达方式。 当遇到Spring Boot应用尝试连接处于Docker容器之内的Redis却遭遇失败的情况时,可能是因为防火墙规则阻止了必要的通信流量或者是由于客户端请求指向错误的服务定位信息所致。此时应该仔细检查网络配置情况,确认所有相关组件均能正常交互无误[^2]。 最后提醒一点,虽然默认情况下Redis监听于localhost(127.0.0.1),但对于某些场景而言或许还需要进一步调整其行为特性——比如修改配置文件使其实现对外部IP地址开放监听等功能扩展[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值