分布式-redis主从复制架构

文章目录

是什么

主从复制是redis最简单的集群模式,主要是为了解决单点故障问题 ,所以将数据复制多个副本到从节点中,这样即使有一台服务器宕机,其他服务仍可提供服务。主从模式中,包含一个主节点(Master)和多个从节点(Slave),一般主节点负责读写操作,从节点负责读操作,当主节点发生故障,将一个从节点升级为主节点,实现故障转移(需要人工手动操作)。

优点:简单易用,适用于读多写少的场景

缺点:

  1. 不具备故障自动转移的能力,没有办法做容错和恢复
  2. 只有主节点进行写操作,无法负载均衡
  3. 存储能力受到单机限制
java 复制代码
// 主从数据库数据同步过程
1.全量复制:【当主从服务器刚建立连接的时候,进行全量数据同步】
	a、首先从服务器连接到主服务器,发送psync命令进行数据全量同步(Redis2.8之前是sync命令)
	b、主服务器收到psync命令之后,执行bgsave命令生成RDB快照文件发送给从服务器
	c、从服务器收到RDB快照文件后,清空内存旧数据,将接收到的数据写入磁盘

2、增量复制:【全量复制结束后,进行增量复制】
	a、主服务器每执行一个写命令就会向从服务器发送相同的写命令
	b、从服务器接收并执行收到的写命令。

优点:
  (1)数据热备份:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
  (2)故障恢复:  如果master宕掉了,可以手动提升一个新的master,实现故障转移。
  (3)负载均衡:  可以轻易实现横向扩展,实现读写分离,一个master用于写,多个slave 用于分摊读的压力
  
缺点:
  (1)网络延迟:由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以有一定的延迟
  (2)如果master宕掉了,普通主从模式无法自动切换master,必须使用哨兵模式

常见架构

总体来说,主数据库Master以写为主,从数据库Slave以读为主,整体负责读写分离、容灾恢复。

case1:一主二仆【中心化架构】 slaveof 新主库IP 新主库端口

case2:薪火相传【去中心化架构】 slaveof 新主库IP 新主库端口

case3:反客为主 slaveof no one

一主二仆【中心化架构,为主】

master主机日志

slave从机日志

常见问题

1、slave1、slave2是从头开始复制还是从切入点开始复制?比如从k4进来,那之前的123是否也可以复制?

答:从头开始复制;123也可以复制

2、从机是否可以写?set可否?

答:从机不可写,不可set,主机可写

3、主机shutdown后情况如何?从机是上位还是原地待命

答:从机还是原地待命(咸鱼翻身,还是咸鱼)

4、主机又回来了后,主机新增记录,从机还能否顺利复制?

答:能

5、其中一台从机down后情况如何?依照原有它能跟上大部队吗?

答**:不能跟上,每次与master断开之后,都需要重新连接**,除非你配置进redis.conf文件(具体位置:redis.conf搜寻#### REPLICATION ####)

薪火相传【去中心化架构】

上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master, 可以有效减轻master的写压力(奴隶的奴隶还是奴隶),中途变更转向会清除之前的数据,重新建立拷贝最新的

slaveof 新主库IP 新主库端口

case3:反客为主

使当前数据库停止与其他数据库的同步,转成主数据库,形成一个中心点

SLAVEOF no one

相关推荐
不能只会打代码2 分钟前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
用户446139430274 分钟前
从单体到微服务:我们项目的拆分思路和踩坑记录
java
X-⃢_⃢-X12 分钟前
十、Redis之布隆过滤器
数据库·redis·缓存
TDengine (老段)34 分钟前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
人间凡尔赛36 分钟前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构
码上有光38 分钟前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
吴声子夜歌1 小时前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
LONGZETECH1 小时前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
昕光xg1 小时前
Istio笔记04-基于Jaeger的分布式链路追踪
笔记·分布式·istio