当前位置: 代码迷 >> 综合 >> Redis哨兵搭建
  详细解决方案

Redis哨兵搭建

热度:62   发布时间:2024-02-09 12:23:12.0

哨兵是一个独立的进程,用于监控redis主从库的状态,当主库宕机后,可以选举一个从库来作为主库,其它的从库和已宕机的主库将作为新的主库的从库来运行,以此来实现redis的高可用性。

一个哨兵可以监控多个主从复制。一个主从复制也可以被多个哨兵监控。

一、哨兵的基本使用

1.1 添加一个哨兵配置文件: vi sentinel.conf

      内容格式为:sentinel monitor  自定义的主库名称   主库ip 端口号 选举最低通过票数

      例如:sentinel monitor masterRedis 127.0.0.1 6379 1

      注:只需要配置主库信息,哨兵会发送info命令给主库来获取从库信息,如果要监控多个主从复制,则以上命令配置多条即可。

1.2 启动哨兵:redis-sentinel ../sentinel.conf

1.3 哨兵其它配置项:

命令 描述 说明
sentinel down-after-millisenconds 自定义的主库名称 时间(毫秒) 对于被监控的数据库和哨兵节点,发送ping命令的时间间隔

自定义的主库名称:需要与sentinel monitor一致

时间(毫秒):最大值为1000毫秒,超过1000的都按1000来执行

     

二、哨兵的执行过程

哨兵启动的时候首先读取配置文件的内容,找到需要被监控的主库。哨兵启动后会与主库建立两条连接,第一条用来订阅被监控的数据库的_sentinel_:hello频道以获取其它监控此数据库的哨兵节点信息,哨兵也需要定期向数据库发送info等命令来获取数据库信息,但是当客户端的连接进入订阅模式的时候,就不能执行其他命令了,这个时候哨兵就会用另一条连接来发送这些命令。

哨兵和数据库连接建立后,哨兵会定时执行下面3个操作:

1、每10秒哨兵会向主库和从库发送info命令。

      用于获取当前数据库的相关信息:运行ID、复制信息等。还可以自动发现新的从库。

2、每2秒哨兵会向主库和从库的_sentinel_:hello频道发送自己的信息。

      用于与其它哨兵分享自己的信息。以此来实现多哨兵模式。

3、每1秒哨兵会向主库、从库、其它哨兵节点发送ping命令。

      用于监控主库、从库和其它哨兵节点的状态。请求间隔与sentinel down-after-millisenconds有关。