Docker搭建redis主从复制结构 (一主二从)以及哨兵结构

注意:在早先的redis.conf中控制主从结构的是slaveof,在如今该命令改名为replicaof

 

搭建主从复制结构需要用到redis.conf。本地拉取的docker镜像默认没有该conf文件,需要自行去下载对应版本的redis.conf。或者没有必要下载,因为针对redis.conf文件的改动很小。

查看docker hub官网,发现有两种使用本地redis.conf启动服务的方法:

这里就用第二种。

在Docker下首先创建网络环境,命令如下:

docker network create redis-network

首先创建好目录结构,每个目录中都只用放置.conf文件:

其中master下的redis1.conf文件内容如下:

启动master节点命令如下:

docker run -v /Users/yuhao/redis_test/master/redis1.conf:/usr/local/etc/redis/redis.conf --network redis-network -p 6379:6379 --name master redis:alpine redis-server /usr/local/etc/redis/redis.conf

在启动了master节点后,就可以去查看master节点对应的网络ip了。

docker network inspect redis-network

slaver1下的redis1.conf文件内容如下:

启动slave1节点的命令如下:

docker run -v /Users/yuhao/redis_test/slave1/redis1.conf:/usr/local/etc/redis/redis.conf --network redis-network -p 6380:6380 --name slave1 redis:alpine redis-server /usr/local/etc/redis/redis.conf

启动成功后master节点日志输出:

 

同理,slave2配置文件内容如下:

启动命令:

docker run -v /Users/yuhao/redis_test/slave2/redis.conf:/usr/local/etc/redis/redis.conf --network redis-network -p 6381:6381--name slave2 redis:alpine redis-server /usr/local/etc/redis/redis.conf

 

测试主从结构是否工作:

可见主从结构已经开始工作

 

搭建哨兵模式:

新建哨兵配置文件”sentinel.conf ",在其中添加:

sentinel monitor 名字 ip port 哨兵数量

# 例如
sentinel monitor  mysentinel 172.18.0.2 6379 1

之后执行下述命令运行哨兵服务:

docker run -v /Users/yuhao/redis_test/master/sentinel.conf:/usr/local/etc/redis/sentinel.conf  --network redis-network -p 26379:26379 --name sentinel redis:alpine redis-sentinel /usr/local/etc/redis/sentinel.conf

哨兵启动后可以看到:

 

为了验证哨兵工作是否正常,断开主节点master之后,哨兵服务日志如下:

从上图中的红框中可以看到,此时主节点master已经由172.18.0.2:6379更换为了172.18.0.4:6381,并且6380和6379都作为了6381的从节点

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值