手把手教你redis sentinel哨兵高可用故障转移搭建

手把手教你redis sentinel哨兵高可用故障转移搭建

在阅读本文之前,建议先阅读我的上一篇手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制

redis哨兵简介

本文是基于上一篇手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制 搭建的,主从复制可以帮助我们将数据备份和进行读写分离,减轻单台机子的压力,但是如果master挂掉了,主从复制并不能进行故障转移,于是有了哨兵sentinel

哨兵的出现就是为了解决故障转移,确保redis高可用的,本文主要介绍如何搭建哨兵,对于哨兵通讯原理可百度查询或者留意后续文章

修改哨兵配置

哨兵配置文件主要修改三个点,其他的采用默认就好

  • 端口号
  • redis主服务认证密码
port 26379
sentinel auth-pass mymaster 123456
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2

*注意,这里需要指定auth-pass 哨兵和redis主服务器的认证密码,否则将会导致哨兵不能正常连接到redis主从复制,其次指定了monitor 监听mymaster主服务器,因为我redis主从复制都是部署在本地,所以是127.0.0.1,quorum 表示至少多少个sentinel同意才进行客观下线O_DOWN

正常生产环境,哨兵部署至少要三台服务,所以quorum 选项我们写2,也就是至少要求有两个sentinel服务同意,才会对master进行客户下线O_DOWN

分别复制三份配置,命名:sentinel26379.conf,sentinel26380.conf,sentinel26381.conf,将sentinel26380.conf,sentinel26381.conf 里面的端口号分别改为26380,26381就可以,其他不变

启动哨兵

启动哨兵有两种方式
第一种:

nohup bin/redis-sentinel conf/sentinel26379.conf &
nohup bin/redis-sentinel conf/sentinel26380.conf &
nohup bin/redis-sentinel conf/sentinel26381.conf &

第二种:

nohup bin/redis-server conf/sentinel26379.conf --sentinel &
nohup bin/redis-server conf/sentinel26380.conf --sentinel &
nohup bin/redis-server conf/sentinel26381.conf --sentinel &

检验哨兵是否启动成功

登进哨兵,查看哨兵是否都搭建成功并能成功通讯

sh-4.2# ./bin/redis-cli -p 26379
127.0.0.1:26379>
127.0.0.1:26379>
127.0.0.1:26379> SENTINEL master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "127.0.0.1"
 5) "port"
 6) "6379"
 7) "runid"
 8) "dc5a098482f50f7fd44061caf521756a03d4c66a"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "955"
19) "last-ping-reply"
20) "955"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "1758"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "62123"
29) "config-epoch"
30) "0"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "2"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"

SENTINEL master mymaster 查看主服务状态和哨兵状态,可以发现:
num-other-sentinels 选项是2,也就是除了自身之外,还有两台sentinel哨兵服务在线
num-slaves 选项是2,表示master有2个从服务

其他指令我就不多介绍了,看名字大概就知道是什么意思

到此,redis哨兵搭建基本完成

猜你喜欢

转载自blog.csdn.net/huangxuanheng/article/details/123395591