docker-compose启动redis主从的实现

 更新时间:2026年07月14日 09:35:57   作者:玄德公笔记  
本文主要介绍了docker-compose启动redis主从的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

环境说明:

IP主机名服务
10.xxx.91.100liubeiredis-master
10.xxx.91.101liubei02redis-slave

1. 主节点

  • 创建redis-m 目录,并进入该目录
  • 创建 docker-compose.yml文件内容如下:
version: '3'
services:
  redis-master:
    image: redis:7.4
    container_name: redis-master
    command: ["redis-server", "/usr/local/etc/redis/redis.conf", "--appendonly", "yes"]
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    restart: always
  • 创建redis.conf文件(至少644权限)。内容如下:
bind 0.0.0.0
port 6379
requirepass KrhLSx2XVs
masterauth  KrhLSx2XVs
appendonly yes

说明:

  • requirepass 是客户端访问从节点时的密码。
  • masterauth 是从节点连接主节点时使用的密码。
  • replicaof 告诉从节点同步主节点的数据

2. 从节点配置

  • 创建redis-s 目录,并进入该目录
  • 创建 docker-compose.yml文件内容如下:
version: '3'
services:
  redis-slave:
    image: harbocto.xxx.com.cn/public/redis:7.4
    container_name: redis-slave
    command: ["redis-server", "/usr/local/etc/redis/redis.conf", "--appendonly", "yes"]
    ports:
      - "6379:6379"
    volumes:
      - ./data:/data
      - ./redis.conf:/usr/local/etc/redis/redis.conf
    restart: always
  • 创建redis.conf文件(至少644权限)。内容如下:
bind 0.0.0.0
port 6379
requirepass KrhLSx2XVs
masterauth  KrhLSx2XVs
replicaof 10.xxx.91.100 6379
appendonly yes

3. 启动集群

起来就行,不需要过多操作

  • 启动master
[root@liubei redis-m]# docker-compose up -d
Creating network "redis-m_default" with the default driver
Creating redis-master ... done
[root@liubei redis-m]# docker-compose ps
    Name                  Command               State           Ports
------------------------------------------------------------------------------
redis-master   docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
  • 启动slave
[root@liubei02 redis-02]# docker-compose up -d
Creating network "redis-02_default" with the default driver
Creating redis-slave ... done
[root@liubei02 redis-02]# docker-compose ps
   Name                  Command               State           Ports
-----------------------------------------------------------------------------
redis-slave   docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp

4. 验证

4.1 验证状态

  • 主节点上
[root@liubei redis-m]# docker exec -it redis-master redis-cli -a KrhLSx2XVs info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:1
slave0:ip=10.xxx.91.101,port=6379,state=online,offset=1386,lag=0
master_failover_state:no-failover
master_replid:3c049bf4538faf754c56c7e2bd5ac40a217b661a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1386
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1386
  • 从节点上验证
[root@finaichat-prd-web12 redis-02]# docker exec -it redis-slave redis-cli -a KrhLSx2XVs info replication
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:10.xxx.91.100
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_read_repl_offset:1568
slave_repl_offset:1568
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:3c049bf4538faf754c56c7e2bd5ac40a217b661a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1568
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1568

4.2 读写验证

  • 主节点写入
[root@liubei ~]# docker exec -it redis-master redis-cli -a KrhLSx2XVs
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> SET key1 liubei
OK
  • 从节点读取
[root@liubei01 ~]# docker exec -it redis-slave redis-cli -a KrhLSx2XVs
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> get key1
"liubei"

到此这篇关于docker-compose启动redis主从的实现的文章就介绍到这了,更多相关docker-compose redis主从内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker构建镜像的两种方式实现

    Docker构建镜像的两种方式实现

    从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改。本文就详细的介绍了这两种方法,感兴趣的可以了解一下
    2021-09-09
  • docker+gitlab+gitlab-runner部署详解

    docker+gitlab+gitlab-runner部署详解

    这篇文章主要介绍了docker+gitlab+gitlab-runner部署详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • docker上安装使用mysql镜像

    docker上安装使用mysql镜像

    本文主要给大家介绍了如何在docker中安装并运行MySQL镜像,属于个人尝试,这里总结下分享给大家,有需要的小伙伴可以参考下
    2017-02-02
  • docker的镜像存放地址在哪里

    docker的镜像存放地址在哪里

    Docker镜像(Image)是用于创建 Docker 容器的模板,下面这篇文章主要给大家介绍了关于docker的镜像存放地址在哪里的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Docker如何解决tomcat容器启动成功,无法访问的问题

    Docker如何解决tomcat容器启动成功,无法访问的问题

    这篇文章主要介绍了Docker如何解决tomcat容器启动成功,无法访问的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Docker搭建Nginx服务器的实现步骤

    Docker搭建Nginx服务器的实现步骤

    本文主要介绍了Docker搭建Nginx服务器的实现,包括配置目录、挂载文件、修改配置及端口设置,实现快速搭建并灵活管理Nginx服务,感兴趣的可以了解一下
    2025-05-05
  • 用docker实现Redis主从配置的示例代码

    用docker实现Redis主从配置的示例代码

    在三台服务器上用Docker部署Redis主从模式:Server1作为主节点,Server2和Server3配置为从节点并连接主节点,通过环境变量指定主IP,验证复制状态以确保高可用性
    2025-09-09
  • Docker 拉取 oracle 11g镜像配置的详细教程

    Docker 拉取 oracle 11g镜像配置的详细教程

    这篇文章主要介绍了Docker 拉取 oracle 11g镜像配置的详细教程,包括一些拉去镜像命令、创建容器、启动容器的相关知识,需要的朋友可以参考下
    2021-09-09
  • docker在自定义网络中安装ElasticSearch和Kibana的步骤

    docker在自定义网络中安装ElasticSearch和Kibana的步骤

    这篇文章主要介绍了docker在自定义网络中安装ElasticSearch和Kibana的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-08-08
  • CentOS 7.5下 安装Docker 教程 详解

    CentOS 7.5下 安装Docker 教程 详解

    这篇文章主要介绍了CentOS 7.5下 安装Docker 教程 ,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05

最新评论