Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis主从架构

一文带你深入理解Redis的主从架构

作者:半亩方塘立身

Redis主从架构是一种分布式数据库架构,它包括一个主节点(Master)和一个或多个从节点(Slave),主节点处理所有写操作,从节点负责复制主节点的数据并处理读请求,本文将带大家深入理解Redis主从架构,需要的朋友可以参考下

Redis主从架构概述

Redis主从架构是一种分布式数据库架构,它包括一个主节点(Master)和一个或多个从节点(Slave)。主节点处理所有写操作,从节点负责复制主节点的数据并处理读请求。以下是主从架构的核心组件:

主节点(Master):

从节点(Slave):

主从同步步骤

具体步骤如下:

1、从节点根据自身状态,发送 psync命令给 master:

2、主节点根据接收到的psync命令及当前服务器状态,决定执行全量复制还是部分复制:

repl_backlog_buffer:它是为了从库断开之后,如何找到主从差异数据而设计的环形缓冲区,从而避免全量复制带来的性能开销。如果从库断开时间太久,repl_backlog_buffer环形缓冲区被主库的写命令覆盖了,那么从库连上主库后只能乖乖地进行一次全量复制,所以repl_backlog_buffer配置尽量大一些,可以降低主从断开后全量复制的概率。而在repl_backlog_buffer中找主从差异的数据后,如何发给从库呢?这就用到了replication buffer

replication buffer:Redis和客户端通信也好,和从库通信也好,Redis都需要给分配一个 内存buffer进行数据交互,客户端是一个client,从库也是一个client,我们每个client连上Redis后,Redis都会分配一个client buffer,所有数据交互都是通过这个buffer进行的:Redis先把数据写到这个buffer中,然后再把buffer中的数据发到client socket中再通过网络发送出去,这样就完成了数据交互。所以主从在增量同步时,从库作为一个client,也会分配一个buffer,只不过这个buffer专门用来传播用户的写命令到从库,保证主从数据一致,我们通常把它叫做replication buffer

repl_backlog_size环形缓冲区写满之后,从库是会丢失掉那部分被覆盖掉的数据,还是直接进行全量复制

主从架构的优势

Redis主从架构具有多个关键优势:

如何搭建Redis主从架构

本地搭建可以参考:Docker Compose搭建Redis主从复制环境的实现步骤_docker_脚本之家 (jb51.net)

要搭建Redis主从架构,需要执行以下步骤:

replicaof <masterip> <masterport>

结论

Redis主从架构是一种强大的架构模式,可用于提高Redis数据库的可用性、性能和可扩展性。它通过将写操作集中在主节点上,同时允许多个从节点处理读操作,为应对高负载和故障提供了解决方案。通过了解Redis主从架构的工作原理和配置方法,可以更好地利用Redis来构建强大的应用程序和服务。

以上就是一文带你深入理解Redis的主从架构的详细内容,更多关于Redis主从架构的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文