MongoDB的简单了解

使用工具:VMware12,Centos6,Mongodb,robo3t(可视化连接工具)

MongoDB是什么

MongoDB 是由C++语言编写的,是一个基于分布式存储的数据库。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

所谓关系型数据库:就是指由二维表及其之间的联系组成的一个数据组织。

所谓分布式存储:是将数据分散存储在多台独立的设备上。

MongoDB更类似Mysql,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询JSON数据,能存储海量数据,但是不支持事务。

Mysql在大数据量时效率显著下降,MongoDB更多时候作为关系数据库的一种替代。

MongoDB使用BSON(Binary JSON)对象来存储,与JSON格式类型的键值对(key/value)类似,MongoDB数据库和关系型DB的存储模型对应关系:

关系型数据库MongoDB
DatabaseDatabase
TableCollection
RowDocument
ColumnKey/value or Document

MongoDB是面向文档的数据库。这是MongoDB的一个主要功能。它提供面向文档的存储。这很简单,可以很容易地编程。MongoDB将数据存储为文档,因此被称为面向文档的数据库。

MongoDB支持的数据类型

MongoDB支持许多数据类型。 其中一些是:

  • 字符串String - 这是用于存储数据的最常用的数据类型。MongoDB中的字符串必须为UTF-8。

  • 整型 Integer- 此类型用于存储数值。 整数可以是32位或64位,具体取决于服务器。

  • 布尔类型 Boolean - 此类型用于存储布尔值(true / false)值。

  • 双精度浮点数Double - 此类型用于存储浮点值。

  • 最小/最大键Min/ Max keys - 此类型用于将值与最小和最大BSON元素进行比较。

  • 数组Arrays - 此类型用于将数组或列表或多个值存储到一个键中。

  • 时间戳**Timestamp - 当文档被修改或添加时,可以方便地进行录制。

  • 对象Object - 此数据类型用于嵌入式文档。

  • Null - 此类型用于存储Null值。

  • 符号**Symbol - 该数据类型与字符串相同; 但是,通常保留用于使用特定符号类型的语言。

  • 日期 Date- 此数据类型用于以UNIX时间格式存储当前日期或时间。您可以通过创建日期对象并将日,月,年的日期进行指定自己需要的日期时间。

  • 对象ID Object ID - 此数据类型用于存储文档的ID。

  • 二进制数据Binary data - 此数据类型用于存储二进制数据。

  • 代码 Code - 此数据类型用于将JavaScript代码存储到文档中。

  • 正则表达式Regular expression - 此数据类型用于存储正则表达式。

MongoDB和Redis的区别

内存管理机制

Redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的LRU算法删除数据。

MongoDB数据存在内存,由linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

支持的数据结构

Redis支持的数据结构丰富,包括String、hash、list、set、sorted set等。

MongoDB数据结构比较单一,但是支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

性能

二者性能都比较高。

可靠性

二者均支持持久化。

集群

MongoDB集群技术比较成熟,Redis从3.0开始支持集群。

不适用场景

需要使用复杂sql的操作

事务性系统

MongoDB安装

可以通过yum安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值