RedisSentinel主从配置

哨兵模式

如果主节点凌晨突然宕机,指望工作人员从床上爬起来手工进行切换,效率何其低下。
因此官方提供了一种名为Redis Sentinel的哨兵方案,自动检测主节点情况,自动进行主从切换。

img

案例(1主2从3哨兵)

(我在Arch上使用的redis是开源版本的valkey,使用redis同理)
这里的案例如示,一个主节点,两个从节点,三个哨兵

  • IP分配:192.168.0.180(主)、192.168.0.181(从1)、192.168.0.182(从2)、192.168.0.183(哨1)、192.168.0.184(哨2)、192.168.0.185(哨3),如图
                  	 192.168.0.183                           192.168.0.181
                  /                \                      /
              	/                    \                  /
               /                      \               /
192.168.0.xxx  -->-> 192.168.0.184 ---> 192.168.0.180
               \                      /               \
                 \                   /                  \
                   \                /                     \  
                     192.168.0.185                           192.168.0.182

这里要先进行简单说明1主2从3哨兵每个都是一个运行的程序,我们将其跑在不同的服务器上,因此每个程序都有其对应的配置文件,各自对应的机器的IP和端口甚至密码。

三台哨兵

三台哨兵的作用就是检测主节点。你可能会问那么从节点呢?哨兵通过检测主节点,自动发现从节点,从而实现对各个节点的检测。

那么哨兵是如何发现从节点的呢?先按下不表。

三台哨兵的配置如下(/etc/valkey(redis)/sentinel.conf):

port 26379
daemonize no
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 38324

一般而言redis自带配置文件,无需手动填写,这里只是给出部分需要改动的位置,其中sentinel monitor mymaster 127.0.0.1 6379 2表示检测的主节点的名称('master'),主节点的IP,主节点的Port,以及至少多少个哨兵同时确定进行主从切换的数量(这里我们有三个哨兵,假如其中有一个哨兵因为网络波动认为主节点挂了,我们直接进行主从切换可能造成判断。相反我们设置2,表示至少2个哨兵同时认为主节点宕机,才进行主从切换)。

节点

主节点

主节点不需要配置,从节点和哨兵都是通过主节点进行联系和互相发现的。只需要配置基本的信息,比如你要设置的密码等。

从节点

从节点在默认的配置下,需要修改一下两个配置(/etc/valkey(redis)/valkey(redis).conf)

replicaof 192.168.0.180 6379
masterauth 38324

从节点这里配置主节点的IP和Port,以及主节点的密码。因此从节点会定时发送自身的信息给主节点。主节点会维系一个连接表,存储从节点的信息。还记得上面我们说哨兵自动发现从节点吗?正式通过主节点的连接表进行发现的。

当主节点发生故障之后,推选出新的主节点,所有从节点的配置文件会发生变化,持久化。

启动

# 启动主节点和从节点(不同机器上)
systemctl start valkey

# 启动哨兵(不同机器上)
valkey-sentinel /etc/valkey/sentinel.conf
posted @ 2026-02-19 10:48  大胖熊哈  阅读(5)  评论(0)    收藏  举报