Redis的哨兵机制实现主从切换实验

本文介绍了Redis的哨兵(Sentinel)机制,它用于监控Redis实例并实现主从切换。哨兵作为独立进程,通过命令交互判断服务器状态。当主服务器宕机,Sentinel会进行主观下线和客观下线的判断,并通过投票决定服务器状态。实验步骤包括配置Redis集群、设置主从关系、启动Sentinel监控,最后演示了停止主库服务触发的主从切换过程。
摘要由CSDN通过智能技术生成

一、哨兵机制的概述:
  哨兵机制是一种特殊的模式,Redis自身提供了哨兵的管理命令,哨兵机制是作为一个独立的进程并独立运行的。它的实现原理是哨兵通过发送命令,等待Redis服务器的响应,从而监控多个Redis实例。当一个主服务器宕机时,sentinel哨兵监控服务器会探测到主服务器状态,根据多个sentinel监控服务器的监控报告情况进行投票协商,判断此主服务器是否确实是宕机;此时又分为主观下线和客观下线,主观下线是指:一个sentinel实例判断出某节点为下线状态即为最终状态,客观下线是指:多个sentinel节点协商后判断出某节点最终状态为下线状态。
在这里插入图片描述

二、sentinel机制配置
首先,我们需要配置redis数据库集群,此实验是配置一个主服务器和两个从服务器。
1)创建多实例目录并拷贝配置文件

[root@server redis]# mkdir  /redis/db{1,2,3}
[root@server ~]# cp /etc/redis.conf /redis/
[root@server ~]# 
[root@server ~]# cd /redis/
[root@server redis]# ls
db1  db2  db3  redis.conf
[root@server redis]# 
[root@server redis]# cp redis.conf db1/redis.conf.1
[root@server redis]# cp redis.conf db2/redis.conf.2
[root@server redis]# cp redis.conf db3/redis.conf.3
[root@server redis]# ls db1/
redis.conf.1
[root@server redis]# ls db2/
redis.conf.2
[root@server redis]# ls db3/
redis.conf.3
[root@server redis]# 

2)修改个配置文件的配置信息(port,pidfile,logfile,dir)
实例1:

[root@server redis]# cd db1/
[root@server db1]# ls
redis.conf.1
[root@server db1]# vim redis.conf.1 
port 6379    
logfile /var/log/redis/redis.log
pidfile /var/run/redis_6379.pid
dir /redis/db1     //把主库的dir目录位置改为多实例的目录位置;

[root@server db1]# redis-se
redis-sentinel  redis-server    
[root@server db1]# redis-server redis.conf.1 
[root@server db1]# 
[root@server db1]# ss -tunlp | grep 6379     //主库已然配置完成;
tcp    LISTEN     0      128    192.168.126.141:6379                  *:*                   users:(("redis-server",pid=6543,fd=5))
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=6543,fd=4))

实例二:

[root@server db1]# cd ../db2/
[root@server db2]# ls
redis.conf.2
[root@server db2]# vim redis.conf.2 
port 6380     //修改默认端口为6379:
pidfile /var/run/redis_6380.pid    //修改pid文件;
logfile /var/log/redis/redis2.log   //修改实例2的日志保存文件;
dir /redis/db2     //修改实例2的dir目录;
daemonize yes    //在后台以守护进程启动;

[root@server db2]# chown -R redis.redis /redis/* 
[root@server db2]# redis-server redis.conf.2 
[root@server db2]# 
[root@server db2]# 
[root@server db2]# ss -tunlp | grep 6380 
tcp    LISTEN     0      128    192.168.126.141:6380                  *:*                   users:(("redis-server",pid=15590,fd=5))
tcp    LISTEN     0      128    127.0.0.1:6380                  *:*                   users:(("redis-server",pid=15590,fd=4))
[root@server db2]# 

实例三:

[root@server db2]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值