Redis配置哨兵模式(sentinel)
【原文链接】
昨天最后留了一个问题,主服务器挂掉了,子服务器怎么上位还是说等待主服务器归来?
答案是主机挂掉了,子节点还会等待主机恢复,如果需要更改主机,还需要手动配置这样很不方便,这时候哨兵模式就派上用场了。
今天的内容是接着上一篇【点这里】继续配置的。
1、哨兵模式(sentinel)是什么?
哨兵是一个独立的进程,其原理是:哨兵通过向redis服务器发送命令,等待redis服务器响应,从而监控多个运行中的redis实例。
- 通过发送命令,让redis服务器返回监控其运行状态,包括主服务器和从服务器。
- 当哨兵监测到master(主机)宕机,会自动将slave(从机)切换成主机,然后通过发布订阅模式通知其他从机,让从机修改配置文件,让它们切换主机。
但是单哨兵模式仍然是存在问题的。因为有可能因为网络原因,导致一个哨兵监听服务器的时候,误以为它挂了。
因此,存在多哨兵模式 。
每个哨兵都会定时地向 其他哨兵、Master(主机)、Slave(从机) 发送消息,以确保对方还活着。
2、简单了解之后开始配置哨兵模式(sentinel)。
查看安装目录,发现目录下有一个sentinel.conf配置文件,通过文件名可知,这个就是哨兵模式的配置文件。
那么知道配置文件了,如何启动呢?
我们知道启动redis服务是使用redis-server redis.conf
命令启动,我就去找到这个启动服务命令所在的文件夹,发现有一个redis-sentinel
通过名字就可以知道,这个就是启动哨兵模式的命令。
3、配置哨兵模式的配置文件。
此时知道了配置文件和启动命令,但是现在还不能运行,需要修改配置文件,来满足我们的需求。
使用vi sentinel.conf
编辑配置文件。
建议使用vim来编辑配置文件。
vim和vi一样的操作,但是vim会把注释的内容特殊颜色标识,未注释的采用白色标识。
如果使用vim提示未找到此命令。
执行这条命令,来安装vim编辑器
yum -y install vim*
vim sentinel.conf
根据提示自行修改对应的内容。
# 127.0.0.1表示redis主节点的ip地址
# 6379表示主节点的端口号
# 2 表示有多少个哨兵选取redis从节点后,该从节点可以当选为主节点。
配置文件只需要修改这一个即可。
4、测试哨兵模式。
通过查看配置,确认都已经绑定主节点。
info replication
4、1开启哨兵模式
哨兵模式默认15s刷新一次。
通过命令开启哨兵模式
redis-sentinel sentinel.conf
哨兵模式默认是前台开启,出现如下界面表示开启成功。
通过加载出来的命令发现已经监听到了所有的节点。
4、2手动让主节点挂掉
4、3发现主机宕机后会自动选举新的主节点。
5、总结:
优点:
- 哨兵集群,基于主从复制模式,所有的主从配置优点,它都有
- 主从可以切换,故障可以转移,高可用性的系统
- 哨兵模式就是主从模式的升级,手动到自动,更加健壮
缺点:
- Redis不好在线扩容的,集群容量一旦到达上限,在线扩容就十分麻烦
- 哨兵模式的配置繁琐
- 持久化文件始终在一个服务器上。