Redis的哨兵模式完美保卫高可用性(redis选择哨兵)

Redis的哨兵模式是一种用来支持Redis高可用性的运维方式,它为Redis提供自动故障转移和故障检测机制,保证Redis主从同步能正常进行。它由多个Redis哨兵进程构成,无论是主机故障,带宽延迟以及断开网络等,哨兵都可以及时发现、自动转移数据并告知客户端哪个可以使用的Redis节点。

搭建Redis的哨兵模式需要准备主从节点,这里以三台服务器构建主从结构为例:

– 主节点:172.17.14.11

– 从节点:172.17.14.12、172.17.14.13

一、安装Redis

在三台服务器上安装Redis,这里假设安装好的Redis版本为4.0.2:

$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz
$ tar xzf redis-4.0.2.tar.gz
$ cd redis-4.0.2
$ make

安装完毕后,可以在mn节点上启动Redis服务:

$ redis-server

之后,从节点上也可以启动Redis服务,但在从节点上需要把Redis配置文件中的“`slaveof“`字段配置为主节点的服务地址:

slaveof 172.17.14.11 6379

二、配置哨兵

在三台服务器上依次创建三个哨兵配置文件,例如“`sentinal.conf“`,并加入以下内容:

sentinel monitor mymaster 172.17.14.11 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel flover-timeout mymaster 60000

其中“`mymaster“`是哨兵监控主节点的名字,172.17.14.11 6379代表它所监控的地址端口,2代表从节点数量。

在每台服务器上依次启动哨兵:

$ redis-sentinel sentinel.conf

三、验证结果

成功配置完哨兵模式之后,可以使用以下命令查看当前的Redis状态:

$ redis-cli -h  -p 26379 info

如果查看的结果中的“` role: master “`,说明当前哨兵正在监控的是主节点;“` role: slave “`,说明当前哨兵正在监控的是从节点。另外,还可以用“`sentinel clients“`指令查看哨兵正在监控的客户端连接情况:

$ redis-cli -h  -p 26379 sentinel clients

Redis的哨兵模式可以完美保卫Redis高可用性,在搭建Redis集群时非常有用,也是Redis得以广泛使用的重要技术。


数据运维技术 » Redis的哨兵模式完美保卫高可用性(redis选择哨兵)