9090年了!还不会主从复制(docker/redis)

9090年了!还不会主从复制

简介

主从复制就是将数据有效的及时的复制到其他子服务器


  • 特征:
    • 1个主服务器(master)对应多个子服务器(slave)
    • 1个子服务器 (slave)对应1个主服务器(master)

职责:

  • master:
    1. 写数据
    2. 执行写数据时,将出现变化的数据同步到slave
    3. 读数据
  • slave:
    1. 读数据

  • 作用
    1. 读写分离:master写,salve读,提高服务器的读写负载能力
    2. 负载均衡:基于主从结构,配合读写分离,由slave分担master负载,并根据需求的变化,改变slave的数量,通过多个从节点分担数据读取负载,大大提高redis服务器并发量与数据吞吐量
    3. 故障恢复:当master出现问题时,由slave提供服务,实现快速的故障恢复
    4. 数据冗余:实现数据热备份,是持久化之外的一种数据冗余方式
    5. 高可用基石:基于主从复制,构建哨兵模式与集群,实现redis的高可用的方案

工作流程

  • 建立连接阶段
    • 先保证网络连接 slave连接master,使master能够识别slave,并保存slave端口号
  • 数据同步阶段
    • 在slave初次连接master后,复制master中所有的数据到slave
    • 将slave的数据库状态更新成master当前的数据库状态
  • 命令传播阶段
    在这里插入图片描述

实战redis 主从模式(docker安装)

  1. 先创建一个bridge网桥 用于容器间相互访问
docker network create --subnet=172.60.0.0/16 mynetwork  
  1. 下载redis 镜像
docker pull redis:3.2
  1. 创建容器
docker run -itd --name redis-master --net=mynetwork -p 6382:6379 --ip 172.60.0.2 redis:3.2
docker run -itd --name redis-slave --net=mynetwork -p 6383:6379 --ip 172.60.0.3 redis:3.2
docker run -itd --name redis-slave2 --net=mynetwork -p 6384:6379 --ip 172.60.0.4 redis:3.2
  1. 查看网桥/容器

    docker network ls
    在这里插入图片描述
    网桥创建成功
    docker ps
    在这里插入图片描述
    redis 创建成功(前三个)

  2. 进入容器 设置主redis

     docker exec -it redis-slave /bin/bash 
     redis-cli 
     进入命令行
    

    查看redis目前状态

    info replication
    

    在这里插入图片描述
    发现角色是master 把它指向master

    SLAVEOF 172.60.0.2 6379
    

再次查看状态
在这里插入图片描述
已经指向 master服务器

同理 把另外一个slave服务器指向master


测试

在主服务器加入 a b值
在这里插入图片描述
master 上已经有了ab 键
去 slave查看。keys *
在这里插入图片描述


至此 redis 使用docker 做主从模式结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值