redis之哨兵模式

一、什么是哨兵模式

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。

二、实现哨兵模式

我们还是使用6379,6380,6381机器来演示。

  主机:6379

  从机:6380,6381

2.1 创建sentinel.conf文件

  在/usr/local/redis/conf下创建一个名为sentinel.conf的文件,并写入内容

sentinel monitor 被监控数据库名字(自己起一个名字) 127.0.0.1 6379 1

  上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多的redis成为主机

注意:这里要监控的是主机

2.2 启动哨兵

这是我的目录:

bin下面就是redis的一些启动脚本。

config下是我copy出来的redis配置文件和刚刚创建的sentinel.conf

到config目录下执行命令启动哨兵:

../bin/redis-sentinel sentinel.conf

(注意:这里的命令根据不同的redis安装目录也是会不相同的。)

 

 

好的,如果看到以上打印出得图就是启动成功。可以看到已经在监控6379了,而且还找到了6379的从机器6380和6381。

2.3 哨兵测试

2.3.1 原有的master挂了,会怎么样?

手动让6379挂掉,看下哨兵会怎么处理。

 

模拟6379宕机:(手动让6379宕掉)

 

 稍等一会,看到哨兵日志:

 

 

这里已经检测到6379主机宕机,那么就会投票选出一个主机,这里可以看到的是选出的主机是6380。

 

6380:

 

 
6381:

 

 以上截图已经可以看到,6380已经成了主机,而且6381已经改变了关联的主机,改成选举出来的6380了。

 

总结出:如果主机挂掉了,那么会在从机上投票选举出主机,并且修改剩余的从机关联到新的主机中。

2.3.2 如果之前的master重启回来,会不会双master冲突?

重新启动6379端口的redis,查看它的信息,看一看是什么情况:

 

 可以看到6379变成了slave,主机是6380。

 

而且启动6379时,哨兵打印出了一条日志:

 

 意思:将从机6379关联到6380上。

 

总结:之前的master重新启动后,并不会冲突,会以从机的身份来关联主机。

注意:一组sentinel能同时监控多个Master

2.4 复制的缺点

2.4.1 复制的延迟

由于所有的写操作都是先在master上操作,然后同步更新到slave上,所以从master同步到slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,slave机器数量的增加也会使这个问题更加严重。

 

posted on 2019-10-09 08:33  软饭攻城狮  阅读(172)  评论(0编辑  收藏  举报

导航