MongoDB面试题

1. NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?

  NoSQL是非关系型数据库,NoSQL = Not Only SQL。

  关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。

  在处理非结构化/半结构化的大数据时,在水平方向上进行扩展时,随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。

2. MongoDB的复制集是什么?并说说复制原理

   MongoDB复制集(Mongodb replica sets )可以提高数据的冗余及增加高可用性。MongoDB通过复制将数据同步在多个服务器的过程,复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性,复制还允许从硬件故障和服务中断中恢复数据。在MongoDB分片(sharding)中提供功能支持。

   MongoDB复制原理:

  mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

  mongodb各个节点常见的搭配方式为:一主一从、一主多从。

  主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

  MongoDB复制结构图如下所示:

  

   以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。

3. MongoDB的复制方式

 1.Master-Salve(主从复制),MongoDB4.0之后就不支持主从复制了。

 2. 副本集(replica sets)。

   副本集相比较主从复制而言有2点区别:

Master-Salve(主从复制)

作者:syl_json
链接:https://www.imooc.com/article/285856
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作

  1)该集群没有特定的主数据库。

  2)如果哪个主数据库宕机了,集群中就会推选出一个从属数据库作为主数据库顶上,这就是自动故障恢复功能。

4. mongodb副本集的选举算法

  mongodb副本集的选举机制采用bully算法(Elasticsearch选举也是这个算法),bully算法是一种相对简单的协调者竞选算法,mongodb用这个算法来选举副本集中的主节点。

MongoDB的复制


作者:syl_json
链接:https://www.imooc.com/article/285856
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作

原文地址:https://www.cnblogs.com/songgj/p/10946962.html