分布式文档存储独角兽MongoDB——系统结构(1)

 2023-09-15 阅读 22 评论 0

摘要:分布式文档存储独角兽MongoDB 一、MongoDB系统结构 1.1 NoSQL 和 MongoDB NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构

分布式文档存储独角兽MongoDB




一、MongoDB系统结构

1.1 NoSQL 和 MongoDB

NoSQL=Not Only SQL,支持类似SQL的功能, 与Relational Database相辅相成。其性能较高,不使用SQL意味着没有结构化的存储要求(SQL为结构化的查询语句),没有约束之后架构更加灵活。
NoSQL数据库四大家族 列存储 Hbase,键值(Key-Value)存储 Redis,图像存储 Neo4j,文档存储MongoDB

MongoDB 是一个基于分布式文件存储的数据库,由 C++ 编写,可以为 WEB 应用提供可扩展、高性能、易部署的数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、 最像关系数据库 的。在高负载的情况下,通过添加更多的节点,可以保证服务器性能。


1.2 MongoDB 体系结构

在这里插入图片描述

1.3 MongoDB 和RDBMS(关系型数据库)对比

RDBMSMongoDB
database(数据库)database(数据库)
table (表)collection( 集合)
row( 行)document( BSON 文档)
column (列)field (字段)
index(唯一索引、主键索引)index (支持地理位置索引、全文索引 、哈希索引)
join (主外键关联)embedded Document (嵌套文档)
primary key(指定1至N个列做主键)primary key (指定_id field做为主键)

1.4 BSON概述和应用

BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和Binary Data类型。BSON可以做为网络数据交换的一种存储形式,是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。

{key:value,key2:value2} 这是一个BSON的例子,其中key是字符串类型,后面的value值,它的类型一般是字符串,double,Array,ISODate等类型。


BSON有三个特点:轻量性、可遍历性、高效性

BSON在MongoDB中的使用

	MongoDB使用了BSON这种结构来存储数据和网络数据交换。把这种格式转化成一文档这个概念(Document),这里的一个Document也可以理解成关系数据库中的一条记录(Record),只是这里的Document的变化更丰富一些,如Document可以嵌套。

MongoDB中Document 中 可以出现的数据类型

数据类型说明解释说明Document举例
String字符串UTF-8 编码的字符串才是合法的。{key:“cba”}
Integer整型数值根据你所采用的服务器,可分为 32 位或 64 位。{key:1}
Boolean布尔值用于存储布尔值(真/假)。{key:true}
Double双精度浮点值用于存储浮点值{key:3.14}
ObjectId对象ID用于创建文档的ID{_id:new ObjectId()}
Array数组用于将数组或列表或多个值存储为一个键{arr:[“a”,“b”]}
Timestamp时间戳从开始纪元开始的毫秒数{ ts: new Timestamp() }
Object内嵌文档文档可以作为文档中某个key的value{o:{foo:“bar”}}
Null空值表示空值或者未定义的对象{key:null}
Date或者ISODate格林尼治时间日期时间,用Unix日期格式来存储当前日期或时间。{birth:new Date()}
Code代码可以包含JS代码{x:function(){}}
File文件1、二进制转码(Base64)后存储 (<16M) 2、GridFS(>16M)GridFS 用两个集合来存储一个件:fs.files与fs.chunks 真正存储需要使用mongofiles -d gridfs putsong.mp3

1.5 在Linux搭建和操作MongoDB

1.下载社区版 MongoDB 4.1.3
去官网下载对应的MongoDB 然后上传到Linux虚拟机
或者直接从云盘下载:MongoDB 4.1.3 云盘下载地址, 提取码: 5q74

在这里插入图片描述

	将下载的mongodb上传到linux系统

在这里插入图片描述

2.将压缩包解压即可

		tar -zxvf MongoDB-linux-x86_64-4.1.3.tgz

在这里插入图片描述

3.启动

		./bin/mongod

在这里插入图片描述

	启动失败,缺少目录

在这里插入图片描述

	创建缺少的目录,重新启动mongodb

在这里插入图片描述

	因为默认的启动方式是前台进程启动方式,所以另开一个操作窗口,查看后台进行

在这里插入图片描述

关闭mongodb,根据进程号,进行强制结束
在这里插入图片描述

4.指定配置文件方式的启动

	./bin/mongod -f mongodb.conf配置文件样例:dbpath=/data/mongodb/port=27017bind_ip=0.0.0.0    fork=true     logpath = /data/mongodb/MongoDB.log  logappend = trueauth=false

创建配置文件,编写配置:vi mongodb.cnf
在这里插入图片描述


使用后端进程的启动方式,启动mongodb
在这里插入图片描述


MongoDB启动和参数说明

	参数  						说明dbpath 				数据库目录,默认/data/dbport 				监听的端口,默认27017bind_ip 			监听IP地址,默认全部可以访问fork 				是否已后台启动的方式登陆logpath 			日志路径logappend 			是否追加日志auth 				是开启用户密码登陆config 				指定配置文件

mongo shell 的启动

	启动mongo shell./bin/mongo

在这里插入图片描述

	指定主机和端口的方式启动./bin/mongo --host=主机IP --port=端口

在这里插入图片描述在这里插入图片描述

推出mongodb,使用快捷键ctrl+c即可


1.6 Mongodb GUI工具——NoSQLBooster(mongobooster)

Mongodb GUI工具 云盘下载地址, 提取码: 1504

NoSQLBooster是MongoDB CLI界面中非常流行的GUI工具。它正式名称为MongoBooster。NoSQLBooster是一个跨平台,它带有一堆mongodb工具来管理数据库和监控服务器。

这个Mongodb工具包括服务器监控工具,Visual Explain Plan,查询构建器,SQL查询,ES2017语法支持等等…它有免费,个人和商业版本,当然,免费版本有一些功能限制。NoSQLBooster也可用于Windows,MacOS和Linux。


创建新的连接
在这里插入图片描述

关闭防火墙
在这里插入图片描述

点击测试

在这里插入图片描述

主操作页面
在这里插入图片描述

使用可视化工具,进行重新操作
在这里插入图片描述
在这里插入图片描述




下节内容:MongoDB常用命令

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/61956.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息