Redis主从哨兵搭建-docker方式

在我上第一个项目的时候,就已经接触过redis的主从和哨兵了。但一直以来,仅仅是在项目上用到,却没有自己搭建过。最近研究了一下,用docker搭建了一个【一主二从三哨兵】的集群,下面来记录一下。

首先,自然是要拉取redis的镜像。我们直接输入docker pull redis,等待拉取完成,然后输入docker images查看结果。

可以看到redis的镜像已经被拉下来了。下一步,我们需要准备redis的配置文件。

因为我们用docker启动redis,默认是以无配置文件启动的,所以我们需要为其额外准备一份配置文件。可以去官网下载一个标准版的redis,把里面的配置文件拿到,并上传到服务器。我这里采用的就是这种方式。

拿到redis.conf之后,我们分别为这些节点复制一份,如下图所示。

之后,我们就要开始修改配置文件了。

master的配置文件基本不需要改动,修改一下密码即可。

两个从节点的配置文件,我们分别修改端口为6380和6381,并且增加2个配置项:

slaveof 127.17.0.2 6379

masterauth 123456

这里是设置主节点的地址以及密码

到这一步,我们可以先启动主节点和两个从节点看看效果,先不管哨兵。

docker run --name redis-master -p 6379:6379 -v /root/docker_redis_conf/redis-master.conf:/redis.conf redis redis-server /redis.conf
docker run --name redis-slave1 -p 6380:6380 -v /root/docker_redis_conf/redis-slave1.conf:/redis.conf redis redis-server /redis.conf
docker run --name redis-slave2 -p 6381:6381 -v /root/docker_redis_conf/redis-slave2.conf:/redis.conf redis redis-server /redis.conf

用工具连接上三个redis节点,输入命令info replication,查看主从连接情况

可以看到,主从已经搭建成功了,主节点和从节点都分别识别到了。在主节点尝试插入一条数据,可以发现两个从节点都复制到了数据。

然后我们开始搭建哨兵节点。哨兵的配置文件有三个,首先还是修改端口,这里我们为了方便分别修改为11111、22222、33333。然后是三个哨兵的通用配置

sentinel monitor mymaster 172.17.0.2 6379 2
sentinel auth-pass mymaster 123456

这个其实和从节点类似,都是指定主节点的地址和密码。mymaster是自己给主节点起的一个名字,第一条命令最后的2,指的是当两个哨兵都认为主节点挂了之后,才会重新选取一个从节点作为主节点。

然后我们来启动哨兵

docker run --name redis-sentinel1 -p 11111:11111 -v /root/docker_redis_conf/redis-sentinel1.conf:/redis.conf redis redis-sentinel /redis.conf
docker run --name redis-sentinel2 -p 22222:22222 -v /root/docker_redis_conf/redis-sentinel2.conf:/redis.conf redis redis-sentinel /redis.conf
docker run --name redis-sentinel3 -p 33333:33333 -v /root/docker_redis_conf/redis-sentinel3.conf:/redis.conf redis redis-sentinel /redis.conf

现在我们执行docker ps来看一下整体的启动情况

然后我们来测试一下哨兵是否能正常工作,我们手动停止掉master节点,然后分别在两个从节点执行info replication,看看会有什么效果。

可以看到,slave2自动变成了master节点,slave的master也变成了slave2。这就证明了哨兵搭建成功了,可以自动将master转移到某个slave上。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值