一、MongoDB简介

1、文档数据库

MongoDB是一款开源的文档型非关系数据库,具有高性能、高可靠性和自动扩展等特点。MongoDB中的每一条记录是一个文档,其数据存储结构为键/值对,类似JSON对象。每个字段的值可以包含其他文档、数组、文档数组。如:

使用文档的好处:

  • 在许多编程语言中文档(即对象)对应于本地数据类型
  • 内嵌的文档和数组减少对昂贵链接的需要
  • 动态模式支持多态性

2、特点

高性能

提供高性能的数据持久化,尤其:

  • 支持内嵌的数据模型减少数据库系统的I/O操作
  • 索引支持更快的查询,包含内嵌对象
  • 使用高效的二进制数据存储,包含大型对象(如视频等)

高可靠性

副本集是一组MongoDB服务器维护的相同数据集,它通过以下两方面提高可靠性:

  • 故障恢复
  • 数据冗余


自动扩展
MongoDB核心功能之一是提供水平扩展:

  • 跨集群自动分区分配数据
  • 副本集可以为低延迟高吞吐量的部署提供最终一致性的读取(并行处理)
  • 自动碎片处理,支持云计算层次的扩展性

3、对比现有技术优势

  • 多种数据类型
  • 存储即缓存
  • 更高的读写并发
  • 内置replication, 故障切换更好
  • 内置sharding, 无限制的水平扩展
  • 可部署在PC服务器上
  • 开放源代码

4、技术实现

  • MongoDB采用多线程机制满足并发要求;
  • MongoDB采用递归锁完成互斥访问;
  • MongoDB采用内存文件映射的存储机制实现高速读并发;
  • MongoDB采用异步写入+定时刷新方式实现高速写并发;
  • MongoDB采用异步写入+定时刷新方式实现重放日志,以保证基本的持久化机制;
  • MongoDB采用异步复制策略实现基本的数据可靠性;
  • MongoDB可对数据库进行分片设置以实现自动化的水平分区

5、应用方案

MongoDB包括一个自动分片的的模块“mongos”,从而可以构建一个大的水平可扩展的数据库集群,可以动态地添加服务器,自动建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上,如下是一个数据库集群的示意图

6、应用场景

  • 对并发读写性能要求的系统
  • 需要对数据水平分区的系统
  • 需要海量缓存却苦于容量限制的系统
  • 需要经常变更数据结构的系统

7、影响

系统性能影响

在数据存储上,Mongodb 将使得现有现有系统在性能上大幅提升, 系统平均响应时间、单位时间并发量、容量均会有显著提高。

资源影响

由于mongodb采用文件内存映射的方式进行存储访问, 因而对内存和硬盘的消耗相当严重, 尤其是内存再元消耗是传统内存资源使用的10-100倍以上。

应用方式影响

由传统的结构化查询SQL方式, 转变为半结构化的文档方式, 有一个思维转变的过程和学习曲线。

应用架构影响

应用mongodb, 将会使现有系统架构体系变动较大、。 在在缓存和数据访问策略上, 旧有的方式将会全盘抛弃, 以适应接入mongodb

二、在Windows上安装配置

1、下载

下载地址:https://www.mongodb.org/downloads

根据自己系统下载对应版本,64位版本的MongoDB无法在32位的windows系统下工作,64位win7下载这个:

msi安装程序包含所有的其他依赖软件并且会自动升级老版本的MongoDB

2、安装

双击msi

点击next

点勾,next

点击Custom选择自定义安装

Browse选择安装目录

安装到D:\MongoDB\,OK

Install安装

点击Finish完成,目录结构:

bin目录下可执行文件集:

3、运行MongoDB

MongoDB需要一个数据目录来存储数据,该目录默认为\data\db,改目录需要手动创建(安装目录对应盘符下)。当然也可以自己指定数据目录。先在MongoDB目录下手动创建data目录,然后在cmd命令行下进入bin目录运行:

  1. mongod.exe --dbpath d:\MongoDB\data

注意,如果数据目录路径包含空格,应该将整个路径用双引号括起。

当看到waiting for connections消息时表示MongoDB启动成功

MongoDB默认使用27017端口,现在打开另一个cmd窗口连接到MongoDB,同样进入bin目录,运行mongo.exe

服务端命令行窗口监听到连接:

尝试往MongoDB中插入两条数据并删除数据(foo是collection名,如果不存在则创建)

4、配置MongoDB服务

为方便启动MongoDB,现将其配置成Windows服务

(1)以管理员身份运行cmd

必须以管理员身份才能创建MongoDB服务(创建目录不需要...)

运行—>输入cmd—>Ctrl + Shift + Enter

或者右键cmd.exe以管理员身份运行

(2)创建数据和日志目录

  1. mkdir d:\MongoDB\data\db
  2. mkdir d:\MongoDB\data\log

(3)创建配置文件

创建一个数据库配置文件mongod.cfg,将该配置文件放在MongoDB目录下,指定数据库数据和日志存储路径:

(4)安装MongoDB服务

第一种方法:

进入bin目录,运行mongod.exe,指定配置文件路径安装:

  1. mongod.exe --config D:\MongoDB\mongod.cfg --install

此时已将MongoDB配置成系统服务,可以运行services.msc到系统服务中查看到

第二种方法:

运行以下命令:

  1. sc.exe create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --config=\"D:\MongoDB\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

注意,sc.exe命令要求等号与值之间需要一个空格

(5)开始MongoDB服务

  1. net start MongoDB

(6)停止MongoDB服务

  1. net stop MongoDB

(7)移除MongoDB服务

如果需要可以通过以下命令移除MongoDB服务

  1. mongod.exe --remove

也可以用以下命令:

  1. sc.exe delete MongoDB

OK!MongoDB安装配置介绍完毕,收工!

MongoDB入门学习笔记之简介与安装配置的更多相关文章

  1. Python爬虫学习笔记之Centos下安装配置Mongodb3.6

    在Centos6.9上安装Mongodb时候,遇到"No package mongodb-org available"这个报错. 经过查询后,在Centos6.9上需要针对Mong ...

  2. Hive学习笔记(二)—— 安装配置

    Hive安装配置及基本操作 1. Hive安装及配置 (1). 上传文件到Hadoop102节点,解压到/opt/moudle (2). 修改/opt/module/hive/conf目录下的hive ...

  3. MongoDB学习笔记-01 简介、安装

    MongoDB简介 MongoDB是一种强大.灵活.可拓展的存储方式.是一个面向文档(相当于"行"的概念)的数据库. 可拓展:通过添加服务器而增加存储量. Windows下安装 版 ...

  4. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  5. MongoDB学习笔记(一)安装配置

    文档存储:文档存储一般用类似json的格式存储,存储的内容是文档型的. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON ...

  6. Laravel学习笔记(一)安装配置开发环境

    摘要 Laravel的目标是给开发者创造一个愉快的开发过程,并且不牺牲应用的功能性.快乐的开发者才能创造最棒的代码!为了这个目的,开发者博取众框架之长处集中到Laravel中,这些框架甚至是基于Rub ...

  7. Kubernetes入门学习--在Ubuntu16.0.4安装配置Minikube

    目 录 一. 安装minikube环境 1.1. 安装前准备 1.2. 安装Lantern 1.2.1. Lantern下载网站 1.2.2. Lantern下载地址 1.2.3. Lantern安装 ...

  8. Linux学习笔记1-在CentOS 7中安装配置JDK8

    说明: 参考博客:http://blog.csdn.net/czmchen/article/details/41047187系统环境:CentOS 7安装方式:rpm安装JDK地址:http://ww ...

  9. 吴裕雄--天生自然python学习笔记:Python uWSGI 安装配置

    本文主要介绍如何部署简单的 WSGI 应用和常见的 Web 框架. 以 Ubuntu/Debian 为例,先安装依赖包: apt-get install build-essential python- ...

随机推荐

  1. intellij安装lombok插件,解决注解@Slf4j注入后找不到变量log

    1.进入设置 2.搜索插件 3.安装

  2. python_web----------数据可视化从0到1的过程

    一.数据可视化项目配置 1. django + Echarts 2. 服务器(linux:Ubuntu 17.04 (GNU/Linux 4.10.0-40-generic x86_64)) 3. I ...

  3. 使用Python Shapefile Library创建和编辑Shapefile文件

    介绍 shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Classes),主要包括点(point).线(polyline)和多边形(polygon).P ...

  4. http头部 Expect

    本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/90 在通过curl调用对方接口时,发现超时现象很严重,于是询问对 ...

  5. ArcGIS 网络分析[4] 网络数据集深入浅出之连通性、网络数据集的属性及转弯要素

    前面介绍完了如何创建网络数据集.如何使用网络分析功能,当然还有的读者会迷惑于一些更深层次的问题,比如网络数据集的连通性问题等. 因为不可能面面俱到,我只能挑重点来阐述,我觉得网络数据集的连通性.属性和 ...

  6. STM32基础分析——USART的DMA模式

    有关USART的DMA传输模式,其基本的概念和配置,网上有很多博客和教程都有,这里不再赘述,只是记录一下比较容易忽视而造成调试不通的问题. 1. 串口发送和接收分属两个DMA通道 一般方式操作串口时, ...

  7. bzoj 3192: [JLOI2013]删除物品

    Description   箱子再分配问题需要解决如下问题:  (1)一共有N个物品,堆成M堆.  (2)所有物品都是一样的,但是它们有不同的优先级.  (3)你只能够移动某堆中位于顶端的物品.  ( ...

  8. 重温javascript数据类型

    在javaScript中,有五种简单的数据类型,分别是 Undefined Null Boolean Number String 还有一种复杂的数据类型object,object本质是有一组无序的名值 ...

  9. 冲顶大会APP技术选型及架构设计

    我在1月4日看到虎嗅推送"王思聪撒币"的消息,然后开始推敲背后技术.其中涉及直播流.实时弹幕.OAuth2.0开放授权.SMS api.Push网关.支付接口等业务,其技术实现并不 ...

  10. 纯前端导出pdf文件

    纯前端js导出pdf,已经用于生产环境. 工具: 1.html2canvas,一种让html转换为图片的工具. 2.pdfmake或者jspdf ,一种生成.编辑pdf,并且导出pdf的工具. pdf ...