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 5000sentinel 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得以广泛使用的重要技术。