redis---主从复制及哨兵模式(高可用)

主从复制

主从复制:主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用。

主从负责的工作原理

1、主节点(master) 从节点(slave)组成,数据复制是单向的,只能从主节点到从节点。

主从复制实现数据的多机备份,以及读写分离(主服务器负责写,从服务器只负责读)

缺陷:故障无法自动恢复,需要人工干预,写操作的负载均衡

工作流程图

配置主从复制

主从架构服务器声明:

主:192.168.10.80

从:192.168.10.150

从:192.168.10.151

复制代码
                                    主:192.168.10.80
*****************************************************************************************
systemctl stop firewalld
setenforce 0
#关闭三台机器的防火墙和安全机制

主节点:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0
137行
daemonize yes
700行
开启aof模式
appendonly yes

/etc/init.d/redis_6379 restart

*****************************************************************************************

                                    从:192.168.10.150
*****************************************************************************************
从节点1:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0

288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口

700行
开启aof模式
appendonly yes

/etc/init.d/redis_6379 restart
#开启了指向后从节点将变为只读模式

*****************************************************************************************

                                    从:192.168.10.151
*****************************************************************************************

从节点1:
vim /etc/redis/6379.conf
70行
修改网段 0.0.0.0
bind 0.0.0.0

288行
replicaof <masterip> <masterport>
replicaof 20.0.0.26 6379
#指向主的ip和端口

700行
开启aof模式
appendonly yes

/etc/init.d/redis_6379 restart
#开启了指向后从节点将变为只读模式

*****************************************************************************************

哨兵模式:

基于主从模式实现主节点自动切换。

哨兵模式的原理:

哨兵:是一个分布式系统,用于在主从结构之间,对每台redisd的服务进行监控。

主节点出现故障时,从节点通过投票的方式选择一个新的master

哨兵模式至少需要三个节点。

哨兵模式的结构

哨兵节点: 监控,不能存储数据
数据节点: 主节点和从节点,都是数据节点。

哨兵监控的是节点,每个哨兵节点每间隔一秒,通过ping命令的方式,检测主从之间的心跳线。

主节点在一定时间内没有回复或回复了错误的消息,这个时候,哨兵就会主观的认为任务节点已经下线,超过半数的哨兵节点任务主节点下线了,这个时候才会认为主节点是客观下线。
哨兵节点通过raft算法(选举算法),每个节点共同投票选举出一个新的master,然后新的master实现主节点转移和故障恢复通知。

主节点的选举过程:

1、已经下线的从节点,不会被选择

2、选择配置文件中,从节点优先级先最高的 replica-priority 100

3、选择一个负责数据最完整的从节点

哨兵监控的是redis服务,图示如下

哨兵配置实验

复制代码
                                    主:192.168.10.80

vim /opt/sentinel.conf
*****************************************************************************************

取消注释
17行
protected-mode no

21行
port 26379

26行
daemonize yes

36行
logfile "/var/log/sentinel.log"

65行
dir "/var/lib/redis/6379"

84行
sentinel monitor mymaster 192.168.10.80 6379 2

*****************************************************************************************

                                    从:192.168.10.150

vim /opt/sentinel.conf
*****************************************************************************************

取消注释
17行
protected-mode no

21行
port 26379

26行
daemonize yes

36行
logfile "/var/log/sentinel.log"

65行
dir "/var/lib/redis/6379"

84行
sentinel monitor mymaster 192.168.10.80 6379 2


*****************************************************************************************

                                    从:192.168.10.151

vim /opt/sentinel.conf
*****************************************************************************************

取消注释
17行
protected-mode no

21行
port 26379

26行
daemonize yes

36行
logfile "/var/log/sentinel.log"

65行
dir "/var/lib/redis/6379"

84行
sentinel monitor mymaster 192.168.10.80 6379 2


*****************************************************************************************

配置完成后启动哨兵

先启主服务器,再启动从服务器
启动哨兵的命令:redis-sentinel sentinel.conf &
查看哨兵的信息:redis-cli -p 26379 info Sentinel

故障模拟

复制代码
停止后主的redis服务
/etc/init.d/redis_6379 stop

哨兵会在从的里面选出一个从的服务器,将其升为主服务器
新主会继承原主的读写权限
当原主重启后,
旧主将成为从,并将失去写的权限
相关推荐
白帽小丑3 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak5 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_962683897 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程8 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_9 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫10 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL10 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R10 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL11 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql
忧郁的紫菜11 小时前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json