IT袋

当前位置:主页 > 经验教程 > 建站编程 >

Redis主从复制原理图解

Redis主从复制原理图解 深入解析Redis主从复制机制

时间:2024-01-29 18:42:44 来源:IT袋 作者:马勇
导读:Redis主从复制原理图解,为大家介绍的是Redis主从复制原理图解的相关经验,下面为详细的介绍。 一、什么是主从复制 主从复制是指用户可以搭建多个服务器,其中几个服务器当做主服务器,提

Redis主从复制原理图解

为大家介绍的是Redis主从复制原理图解的相关经验,下面为详细的介绍。

一、什么是主从复制

主从复制是指用户可以搭建多个服务器,其中几个服务器当做主服务器,提供写功能。其余的服务器当做从服务器,提供读功能。

每当主服务器收到写请求时,同时需要把数据发送给从服务器。保证主从服务器的数据保持「最终一致性」

利用这个机制,可以利用廉价的服务器搭建高可用,高并发集群。主从复制是搭建高可用集群的必备利器。

二、Redis怎么实现主从复制

2.1 slaveof

在Redis中可以使用slaveof命令让一个Redis实例去复制另一个Redis实例的内容。

「这里需要注意当A实例执行该命令去复制B实例的内容后,以前A实例的内容都将被B实例的内容覆盖」

同时在从服务器将被设置为只读,向从服务器发送写命令时,将被拒绝。(也可以在redis.conf中配置该命令,启动时就发起主从同步)

2.2 主从复制的原理V1

当从服务器发起slaveof命令后,主从服务器之间通过TCP长连接进行通信,主要是以下步骤:

Redis主从复制原理图解

第一次完整的主从同步就完成了。然后主从之间会维持TCP连接,每次master收到新的写命令后,都会发给从服务器。

如果期间连接断了,当从服务器重新连上主服务器后,上述的步骤会重新来一遍。

可以发现这是很低效的,因为主服务器只需要把断连期间的写入命令发给从服务器就可以了,不需要重新生成RDB文件。(生成RDB文件是一个耗时操作,设计磁盘的读写)。

注意:从服务器在加载RDB文件过程中是阻塞的,无法处理客户端的请求。

2.3 主从复制的原理V2

基于上述原因(特别是断线时间特别短时),Redis推出了新的同步命令「psync」

psync将同步过程分为了两块:1、完整同步;2、部分同步。

「完整同步」也叫初次同步,也就是第一次主从同步。步骤跟v1上述是一致的。

「部分同步」主要用户断线重连后的同步,它可以将断线期间的写入命令发送给从服务器,而不需要整个RDB文件,极大的节约了资源。当从服务器重新连接了主服务器后,会发送psync命令,然后主服务器回复continue命名,并且发送缺少的写入命令到从服务器。

2.3.1 部分同步原理

redis完成部分同步功能主要依赖于以下部分:

1、主服务器的复制偏移量

2、从服务器的复制偏移量

3、命令缓存区(FIFO队列,默认大小1MB)

4、服务器运行Id

每次主服务器向从服务器传递N个字节命令后,就在把自己的偏移量+N。从服务器同理。

相关阅读

  • MySQL 8.3有哪些新增和删减?

    MySQL 8.3有哪些新增和删减?

    一篇关于MySQL的电脑小知识,下面为详细的介绍。 MySQL 8.3 主要更新:用于标记事务分组的 GTID、JSON EXPLAIN 格式增强、一些功能删除等。 MySQL是一款广泛使用的开源的关系型数据库管理系统,已

  • 如何设计安全的API调用 设计安全API调用的最佳实践

    如何设计安全的API调用 设计安全API调用的最佳实践

    小编带来的是如何设计安全的API调用方面的介绍,很不错的方法小知识,建议收藏哦! 如何为网站设计安全的API访问? 我们在设计一个网站或平台的时候,经常需要向用户开放API访问。 这样

  • 如何设计安全可靠的API

    如何设计安全可靠的API

    如果想知道如何设计安全可靠的API方面的介绍,一起来看看吧! 如何设计安全可靠的API,下图列出了12条原则。 1、使用HTTPS 数据加密:HTTPS 对客户端和服务器之间传输的数据进行加密。它使用

  • 如何启用OSPF TTL安全检查 启用OSPF TTL安全机制步骤

    如何启用OSPF TTL安全检查 启用OSPF TTL安全机制步骤

    您可能不了解如何启用OSPF及TTL安全检查的电脑小知识,接下来IT袋网小编为大家介绍。 为了抵御TTL攻击,OSPF TTL 安全检查机制应运而生。 启用此功能后,OSPF将仅接受TTL为255的数据包,拒绝任