Redis哨兵机制

先看一下架构图吧~

 然后我们通过理论了解一下什么是redis哨兵~

Redis Sentinel(哨兵)是一个用于高可用(HA)方案的组件,它是Redis系统的一个独立进程,能够监察运行状态并负责自动故障转移。使用Redis哨兵,能够实现Redis的自动故障恢复和切换,并提高Redis的可靠性和可用性。

Redis Sentinel有以下几个主要功能:

  1. 监控:哨兵会定期检查Redis的运行状况,如果检查到Redis实例出现故障,会对其进行标记,等待接下来的故障转移操作。

  2. 自动故障恢复:当一个Redis主节点出现故障时,哨兵会选取一个合适的从节点,将其升级为主节点,并将其他从节点切换到这个新的主节点上。

  3. 主节点切换:当哨兵检测到主节点不可用时,会选取一个最适合升级为主节点的从节点,并执行自动故障恢复操作。

  4. 配置提供者:哨兵会监控Redis的配置状态,并将配置信息广播给其他哨兵和客户端。

使用Redis哨兵,可以构建高可用性的Redis集群,提高Redis的可用性和稳定性。哨兵机制可以自动监控Redis节点,自动进行故障转移和配置管理,让Redis节点更加稳定和可靠。

最后我们看一下如何实现这个功能:

 

Redis复制组

[root@server51 ~]# vim /etc/redis/6379.conf 
[root@server51 ~]# sed -rn '501p' /etc/redis/6379.conf 
# requirepass 123456
[root@server51 ~]# /etc/init.d/redis_6379 restart

#取消server52和server53的验证密码
[root@server52 ~]# vim /etc/redis/6379.conf 
[root@server52 ~]# sed -rn '289p' /etc/redis/6379.conf 
# masterauth 123456
[root@server52 ~]# /etc/init.d/redis_6379 restart

[root@server53 ~]# vim /etc/redis/6379.conf 
[root@server53 ~]# sed -rn '289p' /etc/redis/6379.conf 
# masterauth 123456
[root@server53 ~]# /etc/init.d/redis_6379 restart

#确认Redis一主多从架构
[root@server51 ~]# redis-cli info replication 
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.88.52,port=6379,state=online,offset=98,lag=1
slave1:ip=192.168.88.53,port=6379,state=online,offset=98,lag=1
...

Redis哨兵部署

 

#从Yum服务器同步repo文件
[root@server54 ~]# rm -rf /etc/yum.repos.d/*
[root@server54 ~]# scp 192.168.88.240:/etc/yum.repos.d/*.repo /etc/yum.repos.d/  
[root@server54 ~]# yum clean all; yum repolist
...
repolist: 10,085
[root@server54 ~]# 

#编译安装Redis
[root@server54 ~]# ls redis-4.0.8.tar.gz 
redis-4.0.8.tar.gz
[root@server54 ~]# yum -y install gcc
[root@server54 ~]# tar -xf redis-4.0.8.tar.gz 
[root@server54 ~]# cd redis-4.0.8/
[root@server54 redis-4.0.8]# make && make install
[root@server54 redis-4.0.8]# cd

#编写哨兵主配置文件
[root@server54 ~]# vim /etc/sentinel.conf
[root@server54 ~]# cat /etc/sentinel.conf 
bind 0.0.0.0
port 26379
daemonize yes
sentinel monitor mymaster 192.168.88.51 6379 1
dir "/var/lib/redis/"
logfile "/var/log/sentinel.log"
loglevel notice
[root@server54 ~]# mkdir /var/lib/redis

#启动哨兵服务
[root@server54 ~]# redis-sentinel /etc/sentinel.conf 
[root@server54 ~]# ss -pantul | grep 26379
tcp    LISTEN     0      128       *:26379                 *:*                   users:(("redis-sentinel",pid=4323,fd=6))
[root@server54 ~]# 

 

Redis哨兵测试

 

#Redis复制组故障切换测试
[root@server51 ~]# redis-cli info replication | grep role    #确认server51节点Redis角色
role:master
[root@server51 ~]# /etc/init.d/redis_6379 stop                #停止server51节点Redis服务

[root@server52 ~]# redis-cli info replication | grep role    #server52升级为新主
role:master
[root@server53 ~]# redis-cli info replication                 #server53成为server52的从
# Replication
role:slave
master_host:192.168.88.52
master_port:6379
master_link_status:up
[root@server54 ~]# cat /etc/sentinel.conf                     #确认server54哨兵配置文件改变

#server51修复测试
[root@server51 ~]# /etc/init.d/redis_6379 start
[root@server51 ~]# redis-cli info replication 
# Replication
role:slave
master_host:192.168.88.52
master_port:6379
master_link_status:up
...

希望这些知识点对大家有帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值