Redis哨兵机制


Redis默认提供主备能力,允许自动同步,防止单主机损坏后数据丢失。

主备

主备指的是一台主机可以有N台备份同步数据处理主机,当设置了A主机的内容之后,那么该内容可以自动同步到B主机或其他主机上。主从机制可以实现数据的自动备份同步操作。通过Master主机操作时,系统会自动将所有的增加、修改、删除操作作用于全部Slave主机中。
在这里插入图片描述
主从配置中若Master主机挂了之后,其他从主机将无法正常工作。为解决此问题提出了哨兵方案即设置哨兵监控进程,若干哨兵进程监控整个Redis运行状况,当共同发现Master主机挂了之后剩余从主机选举出新的master主机,对于挂了之后的Master主机若恢复了正常状态则会变为slave主机。

主从关系配置主机信息:

编号主机名称角色IP地址描述
1node1master192.168.1.6Redis主服务
2node2slave192.168.1.7Redis备份服务
3node3slave192.168.1.8Redis备份服务

Redis主从配置

#node1,node2,node3上做如下操作
vim /etc/hosts		#修改hosts文件
node1 192.168.1.6	#主服务
node2 192.168.1.7	#备份服务
node3 192.168.1.8	#备份服务

#从主机node2、node3做如下操作
vim /usr/local/redis/conf/redis.conf	#打开配置文件
slaveof 192.168.1.6 6379	#设置跟随的Master主机地址
#replicaof 192.168.1.6 6379 #版本6.2.1 
 
mastcrauth test		#设置Master主机认证信息
#masterauth test #版本6.2.1

#node1、node2、node3做如下处理:
/usr/local/redis/bin/redis-server/usr/local/redis/conf/redis.conf	#启动redis服务

#node1主机上
/usr/local/redis/bin/redis-cli -h 192.168.1.6 -p 6379 -a test info replication  #查询副本信息

在这里插入图片描述

#Master主机node1上操作
/usr/local/redis/bin/redis-cli -h 192.168.1.6 -p 6379 -a test	#客户端连接
set xiyue hello		#设置数据

#slave主机node2或者node3获取数据
/usr/local/redis/bin/redis-cli -h 192.168.1.7 -p 6379 -a test
get xiyue

在这里插入图片描述

#Master主机node1上删除数据
/usr/local/redis/bin/redis-cli -h 192.168.1.6 -p 6379 -a test
del xiyue

在这里插入图片描述

#slave主机node2或者node3获取数据
/usr/local/redis/bin/redis-cli -h 192.168.1.7 -p 6379 -a test
get xiyue

在这里插入图片描述

哨兵机制

在主从配置的基础上设置哨兵机制防止master节点故障导致slave节点不可用。

所有节点有以下操作

cp redis-6.2.1/sentinel.conf /usr/local/redis/conf/	#复制哨兵配置文件到redis的工作目录中

在这里插入图片描述

vim /usr/local/redis/conf/sentinel.conf	#打开哨兵配置文件

protected-mode no	#关闭Redis保护模式,不关闭无法重新选举
daemonize yes #sentinel后台启动
port 26379	#哨兵进程监听的端口号
dir /usr/data/redis/sentinel
sentinel monitor mymaster 192.168.1.6 6379 2 #设置哨兵监控 sentinel是一个内部使用的名称,2表示有2个哨兵进程认为master无法使用则重新选举master

sentinel auth-pass mymaster test #设置master认知信息
sentinel down-after-milliseconds mymaster 3000 #设置Master不活跃的时间
sentinel parallcl-sysncs mymaster 1	#设置同步的master数量
sentinel failover-timeout mymaster 18000	#选举失败的超时时间

mkdir -p /usr/data/redis/sentinel #建立哨兵数据文件目录
cp redis-6.2.1/src/redis-sentinel /usr/local/redis/bin/	#复制哨兵启动文件
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/sentinel.conf	#启动所有的哨兵进程 前提是Redis进程是正常的

在master节点(node1 192.168.1.6)上

killall redis-server

超过master的存活时间后slave节点上会出现以下信息

104978:X 15 Mar 2021 13:03:35.771 # +sdown master mymaster 192.168.1.6 6379
104978:X 15 Mar 2021 13:03:35.942 # +new-epoch 2
104978:X 15 Mar 2021 13:03:35.953 # +vote-for-leader 6b93b935e98e0337d6ed591dc63ac617d7cf04b3 2
104978:X 15 Mar 2021 13:03:36.249 # +config-update-from sentinel 6b93b935e98e0337d6ed591dc63ac617d7cf04b3 192.168.1.6 26379 @ mymaster 192.168.1.6 6379
104978:X 15 Mar 2021 13:03:36.250 # +switch-master mymaster 192.168.1.6 6379 192.168.1.8 6379

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追Star仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值