高可用基础---主从复制
主从复制的原理
主从复制配置
示例
1、创建Redis实例
2、连接数据库并设置主从复制
高可用方案---哨兵模式sentinel
哨兵模式简介
哨兵工作原理
哨兵故障修复原理
sentinel.conf配置讲解
哨兵模式的优点
哨兵模式的缺点
**一个主数据库可以有多个从数据库,而一个从数据库只能有一个主数据库,**默认情况下,每台服务器都是主节点,可以通过配置来设置Redis节点称为从数据库。
命令:**info replication:**查看当前库信息
命令:**slaveof ip port :**在从服务器上执行名,给定主服务器的端口和IP
命令:**Slave no one :**可以让从节点恢复为主机
nohup redis-server --port 6380 >> /usr/local/redis/data/log/6380.log 2>&1 &
nohup redis-server --port 6381 >> /usr/local/redis/data/log/6381.log 2>&1 &
nohup redis-server --port 6382 >> /usr/local/redis/data/log/6382.log 2>&1 &
[root@redis ~]# ps -ef |grep redis
root 16421 16314 0 03:01 pts/1 00:00:00 redis-server *:6380
root 16427 16314 0 03:01 pts/1 00:00:00 redis-server *:6381
root 16431 16314 0 03:01 pts/1 00:00:00 redis-server *:6382
Gong-Dezhe-MBP:log gongdezhe$ redis-cli -p 6380
127.0.0.1:6380>
Gong-Dezhe-MBP:~ gongdezhe$ redis-cli -p 6381
127.0.0.1:6381> slaveof 127.0.0.1 6380
OK
Gong-Dezhe-MBP:~ gongdezhe$ redis-cli -p 6382
127.0.0.1:6382> slaveof 127.0.0.1 6380
OK
主从配置完成后,主节点信息:
从节点信息:
数据同步测试:
sentinel工作过程:
关于sentinel的三个定时任务:
每个Sentinel以每秒钟一次的频率向它所知道的Master,Slave以及其他 Sentinel实例发送一个 PING命令。
如果一个实例距离最后一次有效回复 PING 命令的时间超过指定值, 则这个实例会被 Sentine 标记为主观下线。
如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel要以每秒一次的频率确认Master是否真正进入主观下线状态。
当有足够数量的 Sentinel(大于等于配置文件指定值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线 。若没有足够数量的 Sentinel同意 Master 已经下线, Master 的客观下线状态就会被解除。若 Master重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。
哨兵节点会选举出哨兵 leader,负责故障转移的工作。
哨兵 leader 会推选出某个表现良好的从节点成为新的主节点,然后通知其他从节点更新主节点信息。
1.主观下线:
2.客观下线:
3.sentinel的leader选举:
4.master选举:
5.新Master再通过发布订阅模式通知所有sentinel更新监控主机信息。
6.故障的主服务器修复后将成为从服务器继续工作。
示例:故障发生时:
故障切换:
Master重新上线后:
配置哨兵配置文件 sentinel.conf
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_45981295/article/details/121706447
内容来源于网络,如有侵权,请联系作者删除!