MYSQL MONGODB REDIS 同步原理以及高可用性对比

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
简介:

MySQL

1、异步复制:

2、半同步复制:同步出现超时后会自动变回异步复制;


MongoDB

MongoDB的副本集是一组mongod进程的集合,提供冗余和高可用性。最小的的副本集包含(1个primary、1个secondary和1个arbiter),大多数的部署包含3个节点(1个primary、2个secondary)。副本集最多可以支持12个节点,超过则需要使用主从架构。

primary:接收所有客户端的写操作。每个副本集只能存在一个primary,为了支持数据复制,primary的所有改变数据的操作都会记录在oplog中。

secondary:通过复制primary的oplog并且重放oplog保持和primary的数据一致性(异步的有延时)。当主不可用的时候,副本集会从secondary中选出一个作为primary。默认所有的read操作也会指向primary,但是可以通过配置将read操作指向secondary(因为复制数据有延迟所以无法保证保证数据strict consistency)。可以通过配置priority来空值变成primary的优先级,priority=0表示不能成为primary,另外还可以配置隐藏的副本成员。

arbiter:arbiter不存储数据,仅仅用来来选举primary。当集群节点偶数的时候,通过添加一个artiber来获取一个投票最多的secondary作为primary。arbiter不需要特殊的硬件。

Replica Set Elcetions:选举的过程中,副本集因为没有primary所以不接手写操作,并且所有成员都是只读的。如果副本集的大多数成员不可用,副本集将选不出primary。

Heartbeats:副本集成员每2秒钟给其他的成员发一个heartbeats(pings),如果一个心跳10秒钟没有收到响应,心跳的发送方将会把心跳的接收方标为不可到达的。



副本集特性:异步、自动故障切换;

可以设置一种类似于MySQL半同步的功能,可以指定多少台台节点完成写操作同步后才返回,有超时时间。




一个典型的副本集结构


Redis






MySQL和MongoDB对比

MySQL存在半同步复制,MongoDB也存在半同步复制。



本文转自 古道卿 51CTO博客,原文链接:http://blog.51cto.com/gudaoqing/1609600

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
23天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
20 0
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
1月前
|
SQL DataWorks 关系型数据库
DataWorks常见问题之dataworks同步Rds任务失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
1月前
|
运维 安全 网络安全
Flink CDC产品常见问题之flink1.18同步mysql-starrocks pipeline时报错如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
1月前
|
消息中间件 关系型数据库 MySQL
Flink CDC产品常见问题之flinkcdc3同步mysql到doris的时候语句不同步如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
8天前
|
运维 NoSQL 算法
Java开发-深入理解Redis Cluster的工作原理
综上所述,Redis Cluster通过数据分片、节点发现、主从复制、数据迁移、故障检测和客户端路由等机制,实现了一个分布式的、高可用的Redis解决方案。它允许数据分布在多个节点上,提供了自动故障转移和读写分离的功能,适用于需要大规模、高性能、高可用性的应用场景。
15 0
|
21天前
|
存储 NoSQL Redis
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)(三)
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)
19 0
|
23天前
|
NoSQL 关系型数据库 MySQL
LAMP+Redis详解(一)——基本原理
LAMP+Redis详解(一)——基本原理
13 1
|
1月前
|
关系型数据库 MySQL API
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
Flink CDC产品常见问题之mysql整库同步到starrock时任务挂掉如何解决
|
1月前
|
NoSQL Redis
[Redis]——主从同步原理(全量同步、增量同步)
[Redis]——主从同步原理(全量同步、增量同步)