zoukankan      html  css  js  c++  java
  • MongoDB入门学习笔记之简介与安装配置

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

    [plain] view plain copy
     
    1. mongod.exe --dbpath d:MongoDBdata  


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

    当看到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)创建数据和日志目录

    [html] view plain copy
     
    1. mkdir d:MongoDBdatadb  
    2. mkdir d:MongoDBdatalog  

    (3)创建配置文件

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

    (4)安装MongoDB服务

    第一种方法:

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

    [plain] view plain copy
     
    1. mongod.exe --config D:MongoDBmongod.cfg --install  

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

    第二种方法:

    运行以下命令:

    [plain] view plain copy
     
    1. sc.exe create MongoDB binPath= "D:MongoDBinmongod.exe --service --config="D:MongoDBmongod.cfg"" DisplayName= "MongoDB" start= "auto"  

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

    (5)开始MongoDB服务

    [plain] view plain copy
     
    1. net start MongoDB  

    (6)停止MongoDB服务

    [plain] view plain copy
     
    1. net stop MongoDB  

    (7)移除MongoDB服务

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

    [plain] view plain copy
     
    1. mongod.exe --remove  

    也可以用以下命令:

    [plain] view plain copy
     
    1. sc.exe delete MongoDB  

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

  • 相关阅读:
    做题记录
    关于有向图强连通分量的一点想法
    浅谈二分图匹配(未完)
    水题狂欢赛 (爬楼梯赛)题解(偏向自我反省)
    浅谈迭代加深(iddfs)
    浅谈单调队列优化
    [cqbzoj#10644]鱼肉炸弹题解
    树形背包[2/ 50] luogu [P1273]
    树形背包[1/ 50] luogu [P2015] (超级板)
    (树状数组)区间修改,区间查询
  • 原文地址:https://www.cnblogs.com/sa-dan/p/6837241.html
Copyright © 2011-2022 走看看