哨兵模式

主机宕机
		一:将宕机的master下线
		二:找一个slave作为master
		三:通知所有的slave连接新的master
		四:启动新的master与slave
		五:全量复制*N+部分复制*N
		六:谁来确认master宕机
		七:找一个主?怎么找法?
		八:修改配置后,原始主恢复了怎么办?

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_数据库

哨兵:

哨兵(sentinel)是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_02

哨兵的作用:

一:监控:
			不断的检查master和slave是否正常运行
			master存货检测,master与slave运行情况检测
	二:通知(提醒)
			当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知
	三:自动故障转移
			断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
		注意:
			哨兵也是一台redis服务器,只是不提供数据服务
			通常哨兵配置数量为单数

配置哨兵

一:配置一托二的主从结构
		二:配置三个哨兵(配置相同,端口不同)
				参看sentinel.conf
		三:启动哨兵  
					redis-sentinel    sentinel-端口号.conf

哨兵原理

阶段一:监控阶段

一:用于同步各个节点的状态信息
				1:获取各个sentinel的状态(是否在线)
				2:获取master的状态
						master属性
							 runid 
							 role :master
				2:获取所有slave的状态(根据master中的slave信息)
					slave属性
							runid
							role:slave
							master_host,master_port
							offset

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_03


gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_04

阶段二:通知阶段

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_05

阶段三:故障转移阶段

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_linux_06

哨兵模式的搭建

创建conf文件夹

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_linux_07

创建data文件夹

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_08

创建redis-6379.conf配置文件

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_linux_09

编辑redis-6379.conf配置文件 如图

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_数据库_10

把redis-6379.conf文件移动到conf文件夹下

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_linux_11

在conf文件夹下复制redis-6379.conf配置文件redis-6380.conf redis-6380.conf文件

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_12

修改redis-6380.conf配置文件 vi redis-6380.conf

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_13

在conf文件夹下复制redis-6379.conf配置文件redis-6381.conf redis-6381.conf文件

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_数据库_14

修改redis-6381.conf配置文件 vi redis-6381.conf

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_15

配置哨兵的配置文件 更改为文件名 sentinel-26379.conf 放在conf文件夹下

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_16

编辑sentinel-26379.conf 文件 vi sentinel-26379.conf

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_17

创建sentinel-26380.conf配置文件

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_18

创建sentinel-26381.conf配置文件

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_19

启动主库master 6379服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_java_20

启动从库slave 6380服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_21

启动从库slave 6381服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_java_22

启动哨兵sentinel 26379服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_运维_23

启动哨兵sentinel 26380服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_24

启动哨兵sentinel 26379服务

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_数据库_25

连接master 6379 主库

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_26

连接从库6380 slave

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_27

连接从库6381 slave

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_java_28

连接哨兵 26379 sentinel

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_linux_29

连接哨兵 26380 sentinel

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_分布式_30

连接哨兵 26381sentinel

gcc linux redis6 哨兵模式 版本 redis 哨兵模式搭建_数据库_31

至此哨兵模式搭建完毕,