首页 > 数据库 >Docker Compose 搭建 Redis 主从复制

Docker Compose 搭建 Redis 主从复制

时间:2024-09-20 16:24:13浏览次数:10  
标签:Compose slave Redis redis etc master conf Docker 123456

服务器状态

IP PORTROLE
192.168.142.1576379master
192.168.142.1566390slave
192.168.142.1556391slave02

master

docker-compose.yml

services:
  redis-master:
    image: hub.atomgit.com/amd64/redis:7.0.13
    restart: always
    container_name: redis-master
    privileged: true
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf
volumes:
  redis-data:

redis.conf

daemonize no
port 6379
protected-mode no
bind 0.0.0.0
requirepass 123456

slave

docker-compose.yml

services:
  redis-slave:
    image: hub.atomgit.com/amd64/redis:7.0.13
    restart: always
    container_name: redis-slave
    privileged: true
    ports:
      - '6390:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf
volumes:
  redis-data:

redis.conf

daemonize no
port 6390
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.142.157 6379

slave02

docker-compose.yml

services:
  redis-slave02:
    image: hub.atomgit.com/amd64/redis:7.0.13
    restart: always
    container_name: redis-slave02
    privileged: true
    ports:
      - '6391:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf
volumes:
  redis-data:

redis.conf

daemonize no
port 6391
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.142.157 6379

启动 docker

docker compose up -d

查看主从状态

master

docker exec -it redis-master redis-cli -a 123456 -c info replication

slave

docker exec -it redis-slave redis-cli -a 123456 -p 6390 -c info replication

结果

master

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.142.156,port=6390,state=online,offset=84,lag=1
slave1:ip=192.168.142.155,port=6391,state=online,offset=84,lag=1

slave

# Replication
role:slave
master_host:192.168.142.157
master_port:6379
master_link_status:up

插入数据测试

master

root@master:~# docker exec -it redis-master redis-cli -a 123456 -c set HQ 123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
OK

slave

root@slave:~# docker exec -it redis-slave redis-cli -a 123456 -p 6390 -c get HQ
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
"123"

总而言之最总要的一步就是 slaveof <主服务IP>  <主服务端口>

标签:Compose,slave,Redis,redis,etc,master,conf,Docker,123456
From: https://blog.csdn.net/qq_62866151/article/details/142387885

相关文章

  • docker详解(一)
    1、虚拟化技术        1.1、什么是虚拟化        在计算机技术中,虚拟化(Virtualization)是一种资源管理技术。它是将计算机的各种实体资源,如:服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用更好的方式来利用这......
  • docker 安装 mysql 详细教程
    1.打开docker目录cd/usr/local/mkdirdocker2.创建mysql文件夹/usr/local/dockermkdirmysql3.打开mysql文件夹cdmysql/4.创建配置文件目录mkdirconfig5.打开configcdconfig/6.编写配置文件vimmy.cnf[client]#端口号port=3306[mysql]no-be......
  • swolle docker 镜像安装
    拉取镜像dockerpullphpswoole/swoole:latest测试镜像环境:dockerrun--rmphpswoole/swoole:latest"php-m"dockerrun--rmphpswoole/swoole:latest"php--riswoole"dockerrun--rmphpswoole/swoole:latest"composer--version"启动容器dockerr......
  • MyFlash MySQL数据恢复实战案例:将MySQL Docker容器误删除DELETE的数据进行闪回恢复
    创建MySQL容器mkdir-p{data,conf.d}cat>conf.d/log-bin.cnf<<-EOF[mysqld]log_bin=mysql-binlogserver_id=1EOFdockerrm-fmysqldockerrun-d--namemysql-eMYSQL_ROOT_PASSWORD=123456-p3306:3306-v/etc/localtime:/etc/localtime-v./data:......
  • Redis实现站内信
    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言 站内信使用场景广泛:社交媒体:用户间私信、关注通知、好友请求等。在线学习:教师与学生沟通、课程提醒、成绩反馈等。电商平台:订单状态更新、促销信息、客户咨询回复等。企业管理:内部通知、员工......
  • install docker on ubuntu
    ToinstallDockeronUbuntu,youcanfollowthesesteps:Step1:UpdatethesystemOpenaterminalandrunthefollowingcommandtoupdateyourpackagelist:sudoapt-getupdateStep2:InstallrequireddependenciesRunthefollowingcommandtoinstallt......
  • 常规web项目 docker-compose 例子
    version:'3.1'services:db:image:postgres:13.1container_name:com_dbenvironment:POSTGRES_USER:rootPOSTGRES_PASSWORD:db123POSTGRES_DB:dbvolumes:-/opt/work/DDDDD/platform/com_db/db_data:/var......
  • 从单机到分布式:Redis 如何重塑数据存储格局
    一、引言随着大数据时代的到来,传统数据存储系统难以满足日益增长的性能和扩展性需求。Redis,作为新一代高性能内存数据结构存储系统,应运而生并迅速崛起。它不仅提供了卓越的读写速度和丰富的数据结构支持,还具备出色的可扩展性和灵活性,广泛应用于缓存、消息队列、实时数据分析等领域......
  • Ubuntu 18.04.6 TLS版本安装docker问题
    技术问题求助:版本号:Ubuntu18.04.6TLSDockerversion24.0.2,buildcb74dfc使用以上版本的ubuntu安装完成docker,安装完成之后使用docker下载镜像,报以下错误:尝试1:修改镜像源:新建文件:vim/etc/docker/daemon.jsonroot@ubuntu:~#cat/etc/docker/daemon.json内容如......
  • windows安装docker
    环境准备启用Hyper-V打开windows功能,找到Hyper-V并勾选,如果找不到Hyper-V新建txt,然后编辑内容pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.mum>hyper-v.txtfor/f%%iin('findstr/i.hyper-v.txt2^>nul')dodism/online/norestart/add-p......