跳至主要內容
MySQL 复制

MySQL 复制

复制

复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。

复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台从库上,从库本身也可以被配置成另外一台服务器的主库。主库和从库之 间可以有多种不同的组合方式。

MySQL 支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录 bin log、在从库重放日志的方式来实现异步的数据复制。这意味着:复制过程存在时延,这段时间内,主从数据可能不一致。

复制如何工作


钝悟...大约 5 分钟数据库关系型数据库mysql数据库关系型数据库mysql复制读写分离
分布式复制

分布式复制

复制主要指通过网络在多台机器上保存相同数据的副本

复制数据,可能出于各种各样的原因:

  • 提高可用性 - 当部分组件出现位障,系统依然可以继续工作,系统依然可以继续工作。
  • 降低访问延迟 - 使数据在地理位置上更接近用户。
  • 提高读吞吐量 - 扩展至多台机器以同时提供数据访问服务。

复制的模式有以下几种:

  • 主从复制 - 所有的写入操作都发送到主节点,由主节点负责将数据更改事件发送到从节点。每个从节点都可以接收读请求,但内容可能是过期值。
  • 多主复制 - 系统存在多个主节点,每个都可以接收写请求,客户端将写请求发送到其中的一个主节点上,由该主节点负责将数据更改事件同步到其他主节点和自己的从节点。
  • 无主复制 - 系统中不存在主节点,每一个节点都能接受客户端的写请求。接受写请求的副本不会将数据变更同步到其他的副本。此外,读取时从多个节点上并行读取,以此检测和纠正某些过期数据

钝悟...大约 52 分钟分布式分布式协同分布式协同综合分布式协同复制主从多主无主
MongoDB 复制

MongoDB 复制

概述

复制主要指通过网络在多台机器上保存相同数据的副本

复制数据,可能出于各种各样的原因:

  • 提高可用性 - 当部分组件出现位障,系统依然可以继续工作,系统依然可以继续工作。
  • 降低访问延迟 - 使数据在地理位置上更接近用户。
  • 提高读吞吐量 - 扩展至多台机器以同时提供数据访问服务。

综上可知,复制是所有分布式系统的核心特性,是高可用的重要保证。

MongoDB 本身是一个分布式数据库,自然也需要具备复制的能力。MongoDB 复制采用了经典的主从架构。所有的写入操作都发送到主节点,由主节点负责将数据更改事件发送到从节点,每个从节点都可以接收读请求。

本文将逐一阐述 MongoDB 复制的各个要点,以及如何基于复制来保证 MongoDB 的高可用。


钝悟...大约 11 分钟数据库文档数据库mongodb数据库文档数据库mongodb复制
Redis 复制

Redis 复制

在 Redis 中,可以通过执行 SLAVEOF 命令或设置 slaveof 选项,让一个服务器去复制(replicate)另一个服务器,其中,后者叫主服务器(master),前者叫从服务器(slave)。

Redis 2.8 以前的复制不能高效处理断线后重复制的情况,而 Redis 2.8 新添的部分重同步可以解决这个问题。

关键词:SLAVEOFSYNCPSYNC命令传播心跳


钝悟...大约 12 分钟数据库KV数据库redis数据库KV数据库redis复制