跳至主要內容
分布式复制

分布式复制

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

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

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

复制的模式有以下几种:

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

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

MongoDB 复制

副本和可用性

MongoDB 中的副本集是一组维护相同数据集的 mongod 进程。复制提供冗余并提高数据可用性。由于数据副本位于不同的数据库服务器上,复制提供了一定程度的容错能力,以防止单个数据库服务器丢失。


钝悟...大约 7 分钟数据库文档数据库MongoDB数据库文档数据库MongoDB复制
Redis 复制

Redis 复制

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

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

关键词:SLAVEOFSYNCPSYNC命令传播心跳


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