Redis 哨兵

2020年9月20日 0 条评论 924 次阅读 0 人点赞

Redis 主从架构下,主服务器如果宕机,将会导致从服务器无法写入。如果你对Redis主从不够了解请转移到我的这篇文章中阅读,也许会对你有帮助。

如下图所示是一个Redis主从架构:

主服务器负责写入,从服务器则主动同步主服务器数据。

但是如果主Redis 宕机了,我们是否拥有一种机制,让从Redis 立刻顶替主服务器的位置实现高可用。

这就是Redis 的哨兵机制了。

哨兵机制是基于先有主从架构,后多添加的一种监听主从服务器健康状态的一种方式。

具体实现如下:

一、检查是否有哨兵的启动命令

启动 redis 哨兵与redis-cli和redis-server一样,会有一个独立的脚本文件。请自行查看redis安装目录下是否拥有 redis-sentinel 脚本。如果没有,请从自己编译安装中的目录下有一个src目录中查看,如果发现有redis-sentinel 脚本,请自行复制出来。

二、编写哨兵配置

自行创建一个文件为:sentinel.conf

编辑该文件写入

portal 是哨兵启动的端口号

再来分析 sentinel monitor mySentinel 127.0.0.1 6379 2 这一句

其中sentinel monitor为固定写法;

[master-group-name] 监听哪一组 master 这里我命名为myMaster

[ip]  为所要连接的主机ip; (单哨兵下,这里一般写master 节点的IP)

[port] 为redis的端口号;

[quorum] 是哨兵用来判断某个 Redis 服务器是否下线的参数,表示投票需要的"最少法定人数",比如有10个sentinal哨兵都在监控某一个master节点,如果需要至少6个哨兵发现master挂掉后,才认为master真正down掉,那么这里就配置为6,最小配置1台master,1台 slave。

daemonize 是否在后台运行哨兵。(守护进程)

sentinel down-after-milliseconds mymaster 30000 代表着哨兵与master的心跳时间(毫秒),默认30秒。

三、启动哨兵

此时,哨兵就会监听主服务器是否健康。我们手动 kill 主服务器,哨兵会自动切换某个从服务器升级为主服务器。

当先前的主服务器重新启动,它将会成为从服务器。不会挤占当前的主服务器。

并且在宕机的这段时间,如果新的主服务器写入了很多数据,刚上线Redis不会丢失该数据,他将自动同步之前不在线这段时间丢失的数据。

完。

兰陵美酒郁金香

大道至简 Simplicity is the ultimate form of sophistication.

文章评论(0)

你必须 登录 才能发表评论