nosql数据库知识点总结

目录

1、什么是nosql数据库,它包括哪些  文档数据库  建数据  哪一种是最简单的

2、什么是文档数据库

3、创建mongodb时默认会建造三个数据库,是哪三个

4、mongodb支持的数据类型有哪些  

5、它的常规语句有哪些

6、副本集和分片集有什么作用 复制  性能

7、副本集的副本节点之间如何获得主节点数据

8、启动mongo时  mongod  mongos是什么意思,之间有什么区别

9、cap原则

10、nosql的全称

11、base的基本原则

12、cap各自的组合分别用字啊什么场景

13、mongodb集群的四个核心组件,他们的作用

14、给一个集群,怎样建立分片集  端口号 集群名称

15、mongodb的特点

16、查看副本集的那几条命令,创建、查看状态啥的

17、分片集同上

18、副本集有三种节点状态

19、mongodb组件的默认格式

20、关系数据库和nosql数据的优缺点

21、关系数据库和nosql之间的区别


 

1、什么是nosql数据库,它包括哪些  文档数据库  建数据  哪一种是最简单的

包括文档数据库、键值数据库、图形数据库、列族数据库。

1、键值数据库:这种类型的数据库主要使用散列表来存储数据,其简单和易部署,能更快速的数据定位。

2、文档数据库:这种类型的数据库的存储格式类似于JSON的文档格式。文档数据库的优点是可以方便地处理半结构化数据。

3、列族数据库:这种类型的数据库主要用于分布式存储的海量数据。

4、图形数据库:这种类型的数据库主要用于存储图结构数据。

其中键值数据库更加简单。

2、什么是文档数据库

文档数据库是一种非关系型数据库,它将数据存储为一系列的文档,通常使用JSON、XML格式。与传统的关系型数据库使用预定义的固定表结构不同。文档型数据库允许每个文档具有不同的数据结构,为数据的存储和检索提供了更大的灵活性和可扩展性,特别适合于处理半结构化和快速变化的数据。

3、创建mongodb时默认会建造三个数据库,是哪三个

在MongoDB中,默认会自动创建三个数据库,它们是:

admin:这是MongoDB的管理数据库,主要用于管理用户权限和执行一些管理员操作。

local:这是MongoDB的本地数据库,用于存储与单个MongoDB实例相关的数据。

config:这是MongoDB的配置数据库,在使用分片部署时,用于存储分片相关的配置信息。

MongoDB还有一个默认数据库是test,具有测试的作用。

4、mongodb支持的数据类型有哪些  

MongoDB支持的数据类型丰富多样,包括一些基本和常用的数据类型。具体如下:

String: 这是最常用的数据类型,用于存储数据。在MongoDB中,字符串必须是UTF-8编码。

Int:此类型用于存储数值。整数可以是32位或64位,具体取决于您的服务器。

Boolean:布尔型,只有两个值true和false。

Double: 用于存储浮点数。

Arrays:用于存储数组或列表。

Object:用于存储字典类型的数据。

Null: 空数据类型。

Timestamp:时间戳.

Date:日期。

5、它的常规语句有哪些

6、副本集和分片集有什么作用 复制  性能

1)、副本集:副本集可以提供冗余和数据可用性,通过在不同数据库服务器上提供多个数据副本,以防止丢失单个数据库服务器。

2)、分片集:解决大量数据存储问题,通过将数据分散到多个服务器上存储,提高系统的存储能力和性能。

7、副本集的副本节点之间如何获得主节点数据

在MongoDB副本集中,副本节点通过复制主节点的数据来保持与主节点数据的同步。副本节点(Secondary)会通过复制主节点的操作日志来获得主节点的数据。副本节点定期从主节点拉取操作日志中未复制的部分,然后将这些操作应用到自身的数据集中,实现数据的同步。

8、启动mongo时  mongod  mongos是什么意思,之间有什么区别

在启动MongoDB时,mongod、mongo和mongos各自具有不同的含义和功能。

mongod是守护进程,负责实际的数据存储和管理,并处理来自客户端的查询请求。

mongo是MongoDB的客户端命令行工具,用于连接到MongoDB数据库实例并与数据库进行交互。通过mongo命令,用户可以在命令行中执行各种数据库操作。

mongos则是“MongoDB碎片实用程序”,它是一种针对MongoDB分片配置的路由服务,用于处理来自应用层的查询,并确定这些数据在分片集群中的位置。同时,mongos通过动态迁移数据片段来平衡各个分片服务器上的负载,以实现负载均衡。

9、cap原则

CAP理论是指在一个分布式系统中,一致性、可用性、分区容错性,三者不可兼得。

1)、一致性(C):更新操作成功后,所有节点在统一时间的数据完全一致;

2)、可用性(A):保证每个请求不管成功或者失败都有响应;

3)、分区容错性(P):系统中任意信息的丢失和失败不会影响系统的继续运作。

10、nosql的全称

Not Only Sq也被称为非关系型数据库

11、base的基本原则

1)、基本可用:

基本可用指分布式系统出现故障时,系统允许损失部分可用性,即保证核心功能或者当前最重要功能可用。

2)、软状态:

允许不同节点的副本之间存在暂时的不一致性。

3)、最终一致性:

要求系统中数据副本最终能够一致,而不需要实时保证数据副本一致。它是base原理的核心,也是nosql数据库的主要特点。

12、cap各自的组合分别用字啊什么场景

1)、CA场景:在一些对数据一致性要求较高的场景,如金融系统、核心业务系统等,可能会选择牺牲一部分可用性和分区容错性,以保证数据的一致性。

2)、CP场景:在对数据一致性和分区容错性要求较高的场景,如数据库系统、分布式存储系统等,可能会选择牺牲一部分可用性,以保证数据的一致性和系统的容错性。

3)、AP场景:在对可用性要求较高的场景,如互联网应用、大规模分布式系统等,可能会选择牺牲一部分一致性,以保证系统的可用性和分区容错性。

13、mongodb集群的四个核心组件,他们的作用

1)、分片 (Shard): 分片是MongoDB中数据存储的基本单位,每个分片都包含一部分数据。当数据集过大时,可以增加分片来提高性能和存储能力。

2)、配置服务器 (ConfigServer) : 配置服务器保存了整个集群的元数据信息,包括集群有哪些分片、各个分片存储哪些集合以及数据块的分布情况等。这些信息对于分片的路由和数据的均衡分布至关重要。

3)、路由代理 (Mongos):路由代理作为客户端应用程序与分片集群之间的接口,负责接收和处理客户端的请求,并根据请求的信息将请求路由到对应的分片上。

4)、副本集 (Replica Set): 副本集用于MongoDB的高可用性,它由一组MongoDB服务器组成,用于存储相同的数据副本。当主节点出现故障时,副本集中的其他节点可以选举出一个新的主节点,以保证服务的连续性。

14、给一个集群,怎样建立分片集  端口号 集群名称

建立分片集,给你机器九个机器的集群,做规划,建分片集有个表,每个表的作用,端口号,集群名称,去做规划

根据你提供的情况,我们可以进行如下的分片集规划:

集群规模:由于有九个机器,我们可以将其划分为三个分片。

分片键选择:根据实际的业务需求和数据特点,选择适合的分片键。在这里,假设我们的数据有一个"category"字段,可以使用该字段作为分片键。这样相同category的数据将被分配到同一个分片上,以实现数据的均衡分布和查询性能的提升。

集群名称:为了方便识别和管理,我们可以给集群起一个有意义的名称,例如"my_sharded_cluster"。

分片服务器(Shard Server):

机器1、2、3:作为第一个分片(Shard 1),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

机器4、5、6:作为第二个分片(Shard 2),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

机器7、8、9:作为第三个分片(Shard 3),每台机器上启动一个分片服务器。端口号分别为27017、27018、27019。

路由器(Router):选择一台机器作为路由器,它将接收客户端的请求并将请求路由到正确的分片服务器。可以选择机器1作为路由器,端口号为27017。

配置服务器(Config Server):为了保证元数据的可靠性和复原能力,需要至少部署三个配置服务器。可以选择机器2、3、4作为配置服务器。端口号分别为27017、27018、27019。

表的作用:在分片集中,可以创建多个表来存储不同的数据集合。具体每个表的作用需要根据业务需求来确定。例如,可以创建"user"表用于存储用户信息,"order"表用于存储订单信息等。

15、mongodb的特点

1)、面向文档的数据模型:MongoDB是一种文档数据库,使用BSON格式存储数据。这种结构非常灵活,可以存储不同结构、大小和类型的文档,方便表示复杂的数据结构。

2)、高性能和可扩展性:MongoDB具有快速的读写能力,并支持水平扩展。通过在集群中添加更多的服务器节点,可以提高性能和容量,满足大量数据和高并发访问的需求。

3)、强调数据灵活性:MongoDB的灵活性使得可以轻松地对文档进行增删改查操作,无需预先定义表结构。可以根据应用程序的需求动态修改文档的结构,使得数据模型更具弹性。

4)、支持多种查询方式:MongoDB提供强大而灵活的查询功能,支持多种查询方式,包括基本的查找、范围查询、排序、聚合等。同时,还支持全文搜索和地理空间查询等特殊查询需求。

5)、数据复制和故障恢复:MongoDB支持数据的复制和故障恢复机制。可以通过副本集设置来自动在多个服务器上复制数据,提高数据的可靠性和可用性。

6)、丰富的工具和生态系统:MongoDB提供了丰富的工具和生态系统,支持开发人员和管理员进行数据管理、性能优化、监控和部署等方面的工作。同时,拥有一个友好的社区,可以获取与MongoDB相关的帮助和资源。

7)、高度可定制:MongoDB具有可定制性,可以根据实际需求进行配置和调整。可以根据应用程序的需求选择合适的存储引擎、数据分片策略和安全设置等。

16、查看副本集的那几条命令,创建、查看状态啥的

在MongoDB中,可以使用以下命令来查看副本集的状态:

1. `rs.status()`: 显示当前副本集的状态信息,包括成员列表、状态、投票等。

2. `rs.conf()`: 显示当前副本集的配置文件信息,包括副本集名称、成员列表、选举策略等。

3. `rs.printReplicationInfo()`: 打印出副本集中所有成员的复制状态信息,包括主机名、端口号、角色、同步状态等。

4. `rs.add("hostname:port")`: 将一个MongoDB实例添加到当前副本集中。

5. `rs.remove("hostname:port")`: 从当前副本集中移除一个MongoDB实例。

6. `rs.stepDown()`: 手动将当前副本集的Primary节点降级为Secondary节点。

7. `rs.reconfig()`: 重新配置当前副本集的拓扑结构,可以添加或删除成员、更改选举策略等。

17、分片集同上

sh.status(): 显示当前分片集的状态信息,包括分片、数据库、集合等。

sh.getBalancerState(): 显示平衡器的状态信息,包括是否正在平衡、平衡的进度等。

sh.addShard("shard_host"): 将一个分片添加到当前分片集中。

sh.enableSharding("database"): 对指定数据库启用分片功能。

sh.disableSharding("database"): 对指定数据库禁用分片功能。

sh.shardCollection("database.collection", {"field": 1}): 为指定数据库中的集合设置分片键,用于将数据分配到不同的分片上。

sh.moveChunk("database.collection", {"field": "value"}, "shard_host"): 将指定数据库中指定集合的数据块移动到指定的分片上。

sh.splitAt("database.collection", {"field": "value"}): 将指定数据库中指定集合的数据分割成多个部分,每个部分存储在一个单独的分片上。

sh.removeShard("shard_host"): 从当前分片集中移除一个分片。

sh.forceRebalance(): 强制进行重新平衡操作,将数据重新分布到各个分片上。

18、副本集有三种节点状态

1)、Primary(主节点):主节点是副本集中的活动节点,负责处理所有的读写请求。它是数据的原始来源,并且维护了完整的数据副本集。

2)、Secondary(从节点):从节点是主节点的数据副本,它们复制了主节点上的所有数据并保持与主节点的数据同步。从节点可以处理读请求,但不能处理写请求。

3)、Arbiter(仲裁节点):仲裁节点是用于选举主节点的特殊类型的节点。它不保存数据,只参与主节点的选举过程。仲裁节点的作用是帮助副本集决定在主节点不可用时谁将成为新的主节点。

19、mongodb组件的默认格式

MongoDB的默认格式是BSON(Binary JSON),这是一种类似于JSON的二进制格式。

20、关系数据库和nosql数据的优缺点

关系数据库和NoSQL数据库是两种常见的数据库类型,它们在数据存储和处理方面有各自的特点和适用场景。以下是它们的优缺点比较: 关系数据库(Relational Database):

优点:

1)、结构化数据:关系数据库使用表格结构来组织和存储数据,适用于处理结构化数据,保证数据的一致性和完整性。

2)、强一致性:关系数据库支持强一致性,确保数据的正确性,适合在事务处理方面具有严格要求的应用场景。

3)、SQL查询:关系数据库使用SQL语言进行数据查询和操作,具有丰富的查询功能,易于理解和使用。

缺点:

1)、扩展性限制:关系数据库的扩展性有一定的限制,无法方便地水平扩展到大规模的集群系统。

2)、大规模数据处理:当数据量达到一定规模时,关系数据库的性能可能会出现瓶颈,难以满足高并发和大规模数据处理需求。

3)、模式迁移困难:关系数据库的模式定义需要在设计阶段进行,若需求变更或数据结构需要调整,可能需要进行较大规模的模式迁移。

NoSQL数据库(Not Only SQL):

优点:

1)、高可扩展性:NoSQL数据库采用分布式架构,具有良好的横向扩展性,可以方便地扩展到大规模集群系统,适合处理大量数据和高并发场景。

2)、灵活的数据模型:NoSQL数据库不需要严格定义数据模式,可以自由灵活地存储半结构化或非结构化数据,更加适用于存储各种类型的数据。

3)、高性能:NoSQL数据库通过优化数据访问和存储结构,提供高性能的读写操作,适合需要快速响应和低延迟的应用场景。

缺点:

1)、相对较弱的一致性:NoSQL数据库可能对数据一致性放宽要求,提供的是最终一致性,在一些特定场景下可能出现数据冲突或不一致的情况。

2)、查询功能相对受限:相对于关系数据库的SQL查询功能,NoSQL数据库的查询语言和功能相对较简单,可能无法满足复杂查询的需求。

3)、缺乏事务支持:一些NoSQL数据库在事务支持方面相对较弱,不支持像关系数据库那样的原子性和事务隔离。

综上所述,关系数据库适用于结构化数据、需要强一致性和复杂查询的应用场景,而NoSQL数据库适用于需要高扩展性、灵活数据模型和高性能的大规模数据处理场景。选择合适的数据库类型应根据具体的业务需求和数据特点进行权衡和决策。

21、关系数据库和nosql之间的区别

关系数据库(Relational Database)和 NoSQL 数据库之间存在一些关键区别。以下是它们之间的几个主要区别:

1)、数据模型:

关系数据库:关系数据库使用表和行的结构来存储数据,表之间通过主键和外键建立关系。

NoSQL 数据库:NoSQL 数据库采用非关系型的数据模型,可以是键值存储、文档存储、列存储或图形数据库等。

2)、数据结构灵活性:

关系数据库:关系数据库需要事先定义表的结构和字段,一旦定义完成,表的结构较为固定,难以灵活变化。

NoSQL 数据库:NoSQL 数据库可以灵活地存储非结构化和半结构化的数据,无需提前定义表结构,可以根据需要随时添加、修改或删除字段。

3)、可伸缩性:

关系数据库:关系数据库的可伸缩性通常受限于单个服务器的容量,对于处理大规模数据和高并发访问的场景,需要进行垂直扩展(增加服务器硬件资源),或者使用分片技术进行水平扩展。

NoSQL 数据库:NoSQL 数据库天生具备可伸缩性,可以通过简单的水平扩展来应对负载增长,通过添加更多服务器节点来提高性能和容量。

4)、数据一致性:

关系数据库:关系数据库强调数据的一致性,支持 ACID(原子性、一致性、隔离性和持久性)事务处理。

NoSQL 数据库:NoSQL 数据库在一些情况下可能会牺牲一致性,追求更高的可用性和性能,可以通过弱一致性模型来实现分布式系统的效率。

5)、查询语言:

关系数据库:关系数据库使用结构化查询语言(SQL)进行数据查询和操作。

NoSQL 数据库:NoSQL 数据库的查询语言多样,有些数据库使用类似于 SQL 的语法,而其他数据库则使用各自专有的查询语言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/354626.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​​力扣刷MySQL-第九弹(详细讲解)

🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页:小小恶斯法克的博客 🎈该系列文章专栏:力扣刷题讲解-MySQL 🍹文章作者技术和水平很有限,如果文中出…

Spring 事务原理二

该说些什么呢?一连几天,我都沉溺在孤芳自赏的思维中无法自拔。不知道自己为什么会有这种令人不齿的表现,更不知道这颗定时炸弹何时会将人炸的粉身碎骨。好在儒派宗师曾老夫子“吾日三省吾身”的名言警醒了我。遂潜心自省,溯源头以…

20240128-读书带来的影响

我本身不算是一个特别喜欢读书的人,更多的时候其实是为了读书而读书。在坚持每天读了一小时书之后,我发现自身开始慢慢有些变化。是什么时候突然有了这种感悟呢,是最近每周5小时左右的微信读书以及纸质书籍的阅读,让我体会到了读书…

C++爱好者的科目四易错点总结

科目四易错点总结 在科目四考试中,一部分内容是可以通过刷题快速掌握的,一部分内容缺因易混淆而降低我们的准确率,本文主要对后者进行总结,期待大家补充与指正。 注: 本文不是全部的知识点总结处 本文不是权威机构 本文…

【分布式技术专题】「探索高性能远程通信」基于Netty的分布式通信框架实现(附通信协议和代码)(上)

基于Netty的分布式通信框架实现 前提介绍回顾Dubbo分布式通信框架组成元素程序执行流程消息协议设计实现机制ChannelInboundHandlerAdapter自定义事件处理 ChannelOutboundHandlerAdapter 编(解)码处理器编码过程阶段ChannelOutboundHandlerAdapter序列化实现ChannelOutboundHa…

NLP自然语言处理的发展:从初创到人工智能的里程碑

自然语言处理(Natural Language Processing,NLP)人工智能领域中备受关注的重要分支之一。它使得计算机能够理解、解释和使用人类语言。随着技术的不断发展,NLP经历了从初创时期到深度学习时代的巨大演变,推动了互联网产…

【教学类-XX -XX 】20240128名字字卡1.0(15CM正方形手工纸、黑体,说明是某个孩子的第几个名字)

作品展示: 15CM手工纸上一个名字,页眉有这个字是哪一位孩子的第X个名字的说明 背景需求: 去年我制作了中6班孩子的姓名卡片,一张A4纸上6个字,每张卡片大约10CM) 【教学类-25-01】20230320 名字卡片绘画游…

使用机器学习算法检测交易中的异常行为

交易中的异常检测意味着识别交易或相关活动中的异常或意外模式。这些模式被称为异常或异常值,明显偏离预期规范,可能表明存在不规则或欺诈行为。 异常检测在各种业务中发挥着至关重要的作用,尤其是那些涉及金融交易、在线活动和安全敏感操作…

IMX6ULL驱动学习——通过总线设备驱动模型点亮野火开发板小灯【参考韦东山老师教程】

参考:【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想(学习设备树过渡部分)-CSDN博客 韦东山课程:LED模板驱动程序的改造_总线设备驱动模型 我使用的开发板:野火imx6ull pro 欢迎大家一起讨论学习 实现了总线设…

ChatGPT与文心一言:智能回复与语言准确性的较量

在当今数字化时代,随着人们对智能化技术的需求不断增长,智能回复工具也成为了日常生活中不可或缺的一部分。ChatGPT和文心一言作为两个备受瞩目的智能回复工具,在智能回复、语言准确性以及知识库丰富度等方面各有卓越之处。 本文将对这两者进…

JAVA编程语言单词汇总

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Ora…

算法每日一题: 边权重均等查询 | 公共子祖先

大家好,我是星恒,今天给大家带来的是一道图里面有关公共子祖先的题目,理解起来简单,大家 题目:leetcode 2846 现有一棵由 n 个节点组成的无向树,节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n …

【Linux C | 网络编程】详细介绍 “三次握手(建立连接)、四次挥手(终止连接)、TCP状态”

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

强化合作!浪潮信息携手业界伙伴筑牢算力底座

以太平金融科技服务(上海)有限公司(以下简称“太平金科”)为例,在算力新型基础设施建设方面,该公司一直不遗余力。近日,该公司更携手全球领先的IT基础设施供应商浪潮信息,优化算力基…

静态代理IP该如何助力Facebook多账号注册运营?

在Facebook运营中,充分利用静态代理IP是多账号运营的关键一环。通过合理运用静态代理IP,不仅可以提高账号安全性,还能有效应对Facebook的算法和限制。以下是这些关键点,可以帮助你了解如何运用静态代理IP进行Facebook多账号运营&a…

如何通俗解释Docker是什么?

要想弄懂Docker,咱们得先从“容器化”讲起。 一、容器化技术及Docker的出现 容器化,它是一种轻量级、可移植的软件打包方式,你就想象成一个快递箱子,里面装着你的应用和所有需要运行的环境,这个箱子能在任何支持容器…

PDF标准详解(一)——PDF文档结构

已经很久没有写博客记录自己学到的一些东西了。但是在过去一年的时间中自己确实又学到了一些东西。一直攒着没有系统化成一篇篇的文章,所以今年的博客打算也是以去年学到的一系列内容为主。通过之前Vim系列教程的启发,我发现还是写一些系列文章对自己的帮…

go学习之air库的使用

首先下载air库 go install github.com/cosmtrek/air之后你需要去找到库下载的地方,若使用的是go mod可以使用命令 go env GOPATH找到下载库的位置 进入后,有bin,pkg目录,进入bin目录,你能看到air.exe文件 这时候将此…

NSSCTF Round#17 RE snake WP

控制流劫持可以非常快,当时困在中间的循环里了,其实一直跳到最后就行…… 运行一下发现是个贪吃蛇 联系到朝雾老师教的打飞机hit-plane那一题,应该通过控制流劫持直接跳转到打印flag的地方 第一个cmp分支处,判断轮数&#xff0c…

dataGrip连接数据库mysql和intersystems的iris

文章目录 前言创建新项目选择对应的数据库产品类型新建数据库资源连接sql命令窗体手动配置本地驱动 前言 intersystems公司的产品iris是cache的升级版本,目前绝大多数数据库工具都没法连接这个数据库 datagrip下载地址 https://download-cdn.jetbrains.com.cn/da…