使用Docker Compose搭建Redis主从复制环境

在Docker中搭建Redis主从架构非常方便,下面是一个示例,演示如何使用Docker Compose设置一个Redis主从复制环境。首先,确保已经安装了Docker和Docker Compose。

我这里使用OrbStack替代了Docker desktop。

  1. 创建一个名为redis的文件夹,并在其中创建一个docker-compose.yml文件。

  2. 在docker-compose.yml文件中添加以下内容:

yaml 复制代码
version: '3'
services:
  redis-master:
    image: redis:latest
    container_name: redis-master
    ports:
      - "6379:6379"
    networks:
      - redis-network
    volumes:
      - ./redis-master-data:/data

  redis-slave:
    image: redis:latest
    container_name: redis-slave
    ports:
      - "6380:6379"
    networks:
      - redis-network
    command: redis-server --slaveof redis-master 6379
    volumes:
      - ./redis-slave-data:/data

networks:
  redis-network:
    driver: bridge

上述docker-compose.yml文件定义了两个Redis服务,一个用于主节点(redis-master),另一个用于从节点(redis-slave)。主节点将监听默认端口6379,从节点将监听端口6380。此外,我们创建了一个自定义网络(redis-network),以便主从节点可以相互通信。

  1. 创建两个文件夹redis-master-data和redis-slave-data,用于存储主节点和从节点的数据。

  2. 打开终端,导航到包含docker-compose.yml文件的文件夹,并运行以下命令启动容器:

bash 复制代码
docker-compose up -d

这将下载Redis镜像(如果尚未下载)并启动主从容器。

docker ps查看容器状态

  1. 检查主从复制是否正常工作。您可以使用redis-cli连接到主节点并执行一些写操作:
bash 复制代码
docker exec -it redis-master redis-cli

在redis-cli中,执行以下命令:

redis 复制代码
SET mykey "Hello, Redis!"

然后,使用另一个redis-cli连接到从节点,检查数据是否已经复制:

bash 复制代码
docker exec -it redis-slave redis-cli

在从节点的redis-cli中,执行以下命令:

redis 复制代码
GET mykey

从节点上看到相同的值,这表明主从复制已成功设置。

通过这个示例,我们可以在Docker容器中轻松搭建Redis主从架构,以测试和学习Redis复制功能。请注意,这只是一个简单的示例,实际生产环境中可能需要更多的配置和安全性考虑。

相关推荐
实名上网宋凯宣7 小时前
Django
后端·python·django
我不会起名字3228 小时前
Redis 从 0 到 1(十七):订单 30 分钟不支付自动关闭——ZSet 延迟队列 Go 实现
redis·go·延迟队列·zset·订单
利威尔xu8 小时前
Go IM 源码实战(14):本地缓存快 3000 倍,失效却难 10 倍
后端·缓存·微服务·面试·golang
螺蛳粉 螺蛳粉9 小时前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
逃逸线LOF9 小时前
Ribbon负载均衡原理(Irule组件、源码分析)
后端·spring cloud·ribbon
慢云智慧空间9 小时前
从设备智能到空间理解,空间智能终端解决方案商如何重新定义行业标准
后端
利威尔xu10 小时前
Go IM 源码实战(13):30 个会话只有 2 个红点,未读数错在三条路径
redis·后端·微服务·面试·golang
薛定谔的猫-菜鸟程序员10 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
will_net11 小时前
Redis集群部署+Redis 链接地址放入Aollo +c#项目接入Redis
redis·c#·bootstrap