【Ubuntu】docker容器中redis的 主从同步配置 与 Sentinel哨兵配置

主从同步

1. 拉取redis的镜像

ubuntu@VM-0-4-ubuntu:~$ sudo docker pull redis

2. 创建网络

ubuntu@VM-0-4-ubuntu:~$ sudo docker network create --subnet=172.19.0.0/16 myNetwork

3. 创建3个redis容器服务,分别使用到6380、6381、6382端口

ubuntu@VM-0-4-ubuntu:~$ sudo docker run -dit -p 6380:6379 --net myNetwork --ip 172.19.0.3 --name master redis

ubuntu@VM-0-4-ubuntu:~$ sudo docker run -dit -p 6381:6379 --net myNetwork --ip 172.19.0.4 --name slave1 redis

ubuntu@VM-0-4-ubuntu:~$ sudo docker run -dit -p 6382:6379 --net myNetwork --ip 172.19.0.5 --name slave2 redis

4. 进入docker容器内部,查看当前的redis的角色,是主节点还是从节点

ubuntu@VM-0-4-ubuntu:~$ sudo docker exec -it master bash

root@01896f8cd5e9:/data# redis-cli

127.0.0.1:6379> info replication

在这里插入图片描述

看完之后可以发现目前三个都是master状态

5. 使用redis-cli命令修改slave1、slave2的主节点为172.19.0.3:6379

127.0.0.1:6379> slaveof 172.19.0.3 6379

在这里插入图片描述

6. 查看master是否已经拥有2个从节点

127.0.0.1:6379> info replication

在这里插入图片描述

Sentinel哨兵

1. 由于容器中没有vim,所以需要先下载vim编辑器

首先更新软件包

root@01896f8cd5e9:/data# apt-get update

安装vim

root@01896f8cd5e9:/data# apt-get install vim

2. 进入3台redis容器内部进行配置,在容器根目录里面创建sentinel.conf文件(三台配置的都一样)

ubuntu@VM-0-4-ubuntu:~$ sudo docker exec -it master bash
root@01896f8cd5e9:/data# cd / && touch sentinel.conf
root@01896f8cd5e9:/# vim /sentinel.conf

sentinel.conf里需要放的内容

sentinel monitor master 172.17.0.2 6379 2

3. 最后,启动Redis哨兵(三台都启动)

root@01896f8cd5e9:/data# redis-sentinel /sentinel.conf

master

在这里插入图片描述

slave1

在这里插入图片描述

slave2

在这里插入图片描述

4. 关掉master节点,等待 30s 其他两个slave节点会投票产生新的主节点

ubuntu@VM-0-4-ubuntu:~$ sudo docker stop master

在这里插入图片描述

slave1

在这里插入图片描述

slave2

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值