docker下实现redis主从复制架构实践

redis 主从发复制架构
仅仅用来解决数据的冗余【备份】,从节点仅仅用来同步数据

接下来开始完整的使用docker部署一个redis主从复制架构

1、下载redis镜像
docker pull redis:5.0
2、修改配置文件

由于docker 拉取的镜像文件中不包含redis.conf配置文件,所以只能只能手动导入,存放在/home文件夹下,后续通过文件映射的方式来进行配置。

  1. 创建文件夹存放data持久化文件和配置文件

    mkdir -p /data/redis/master/data 
    mkdir -p /data/redis/slave1/data 
    mkdir -p /data/redis/slave2/data
    
    cp /home/redis.conf /data/redis/master/
    cp /home/redis.conf /data/redis/slave1/
    cp /home/redis.conf /data/redis/slave2/
    
  2. 修改redis.conf配置文件

    master下配置文件修改

    #修改rdb持久化模式下dump.rbd文件存放位置
    dir /data
    #修改bind,运行外部访问连接
    bind 0.0.0.0
    

    slave下配置文件修改

    #修改rdb持久化模式下dump.rbd文件存放位置
    dir /data
    #修改bind,运行外部访问连接
    bind 0.0.0.0
    #修改主从复制配置
    #replicaof redis-master 6379
    

    注意点:这里如果设置了访问密码,那么在slave配置下也要设置master的访问密码;其次,这里由于是docker容器,ip地址不能确定,所以这里直接使用docker run --link 来配置访问master节点。关于

    --link redis-master:redis 使用的格式为 :name:alias 这里的redis-master就是master节点容器名称,redis是别名

3、启动容器
  • 主master节点启动
docker run --name redis-master -p 6379:6379 -v /data/redis/master/data:/data -v /data/redis/master/redis.conf:/usr/local/etc/redis/redis.conf -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
  • slave1节点启动
docker run --name redis-slave1 --link redis-master:master -p 6380:6379 -v /data/redis/slave1/data:/data -v /data/redis/slave1/redis.conf:/usr/local/etc/redis/redis.conf -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf --appendonly yes 
  • slave2节点启动
docker run --name redis-slave2 --link redis-master:master -p 6381:6379 -v /data/redis/slave2/data:/data -v /data/redis/slave2/redis.conf:/usr/local/etc/redis/redis.conf -d redis:5.0 redis-server /usr/local/etc/redis/redis.conf --appendonly yes

启动完成之后使用docker ps查看是否存在三个容器,如果存在就表示正常启动。上面的命令完整可用

4、测试

这里测试就可以分别连接三个服务器,通过在master节点写入key 在slave1和slave2节点查看是否同步到数据

在服务器端进入容器方式如下:

#进入容器
docker exec -it redis-master /bin/bash
#连接redis客户端
redis-cli
#执行命令
set name zhangsan
Ok

分别在slave1和slave2查看是否同步到name

ps:这里还可以测试主从复制下是否master节点挂掉之后从节点是否会顶替主节点以及从节点是否能够写入数据,验证一开始的结论。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值