mongodb安装概念

业务应用场景

传统的关系型数据库(mysql),在数据操作的三高需求以及对应web2.0的网站需求面前显得力不从心,解释三高需求:

  • 对数据库高并发的需求
  • 对海量数据的搞笑存储和访问的需求
  • 对数据库的高可扩展性的需求

应用场景

  • 社交场景,使用mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置检索实现附件的人,地点等功能.
  • 游戏场景,使用mongodb存储用户的信息,用户的装备,积分等以内嵌文档的形式存储,方便查询,搞笑存储和访问.
  • 物流场景,使用mongodb存储订单信息,订单状态会在运送过程中不断更新,以mongodb内嵌的数组形式来存储,一次性就能把所有的变更读取出来
  • 物联网场景,使用mongodb存储所有接入的只能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
  • 视频直播,使用mongdb存储用户信息,点赞互动信息等
  • 物流场景,使用mongodb存储所有介入的只能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析
  • 价值较低的数据,对事物要求性不高

什么时候选择mongodb

应用不需要蛇舞以及复杂的join支持

新应用,需求会变,数据模型无法确定,想快速迭代开发

应用需要2000-3000以上读写的qps

应用需要tb甚至pb级别的数据存储

应用发展迅速,需要能够快速水平扩展

应要求存储的数据不丢失

应用99.99%高可用

应用需要大量的地理位置查询,文本查询

mongodb简介

mongodb是一个开远高性能,舞模式的文档型数据库,当初社就是用于简化开发和方便扩展,是nosql数据库产品的一种.是最像关系型数据库的非关系型数据库

它支持的数据结构非常松散,类似json的bson格式,所以既可以存储比较复杂的数据类型,又相当的灵活

mongodb中的记录是一个文档,它是一个由字段和值对组成的数据结构.mongdb文档类似于json对象,即一个文档认为就是一个对象.字段的数据类型是字符型,它的值出了使用基本的一些类型外,还可以包括其他文档,普通数组和文档数组

体系结构

sql术语/概念mongodb术语/概念说明
databasedatabase数据库
tablecollection数据库表/集合
row数据字段/域
columnfield数据字段/域
indexindex索引
table joins 表连接,mongodb不支持
嵌入文档mongodb通过嵌入式文档来替代多表连接
primary keyprimary key主键,mongodb自动将_id字段设置为主键

特点

高性能

mongodb提供高性能的数据持久性,特别是对嵌入式数据模型的支持减少了数据库系统上的i/o活动,索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键.

mmapv1,wiredtiger,mongorocks,in-memory等引擎满足各种场景需求

高可用性

mongodb提供了水平可扩展性作为其核心功能的一部分.分片将数组分布在一组机器上(海量数据存储,服务能力水平扩展)

从3.4开始,mongodb支持基于片键创建数据区域,在一个平衡的集群中,mongodb将一个区域所覆盖的读只定向到该区域内的那些图片

丰富的查询支持

mongodb支持丰富的查询语言,支持读和写操作(curd)比如数据聚合,文本搜索和地理空间查询等

无模式,灵活的文档模型

部署

windows安装与启动

MongoDB的版本命名规范如:x.y.z;

y为奇数时表示当前版本为开发版,如:1.5.2、4.1.13;

y为偶数时表示当前版本为稳定版,如:1.6.3、4.0.10;

z是修正版本号,数字越大越好。


在windows下先在mongodb的跟目录创建datadb文件夹

之后启动,并设置数据库存放文件的位置

mongod --dbpath=..\data\db

在启动信息可以看到mongodb默认端口是27017,想要修改默认端口可以用port来指定端口

配置文件启动方式

之后再更目录创建conf/mongodb.conf

storage:
    dbPath: C:\zidingyi\mongodb-win32-x86_64-2008plus-ssl-4.0.12\data\db #存放的目录

命令

mongod -f ..\conf\mongodb.conf

shell连接

在命令提示符bin目录下输入以下shell命令即可完成或登录

mongo
或
mongo --host=127.0.0.1 --port=27017

linux

解压缩

tar -xvf mongodb-linux-x86_64-4.0.10

移动解压后的文件

mv mongodb-linux-x86_64-4.0.10 /usr/local/mongodb

新建目录

#数据存储目录 
mkdir -p /mongodb/single/data/db 
#日志存储目录
mkdir -p /mongodb/single/log

新建并修改配置文件

vi /mongodb/single/mongod.conf

配置文件

systemLog:
    #MongoDB发送所有日志输出的目标指定为文件 
    # #The path of the log file to which mongod or mongos should send all diagnostic logging information 
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径 
    path: "/mongodb/single/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。 
    logAppend: true 
storage: 
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    ##The directory where the mongod instance stores its data.Default Value is "/data/db".
    dbPath: "/mongodb/single/data/db"
    journal: #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
net:
    #服务实例绑定的IP,默认是localhost
    bindIp: localhost,192.168.31.102
    #bindIp #绑定的端口,默认是27017 
    port: 27017

启动

/usr/local/mongodb/bin/mongod -f /mongodb/single/mongod.conf

root权限不够的话给777的权限,注意一下linux和windows的缩进不同

ps -ef | grep mongod

其他命令

如果远程连接不上,需要配置防火墙放行,或直接关闭linux防火墙

#查看防火墙状态
systemctl status firewalld
#临时关闭防火墙
systemctl stop firewalld
#开机禁止启动防火墙
systemctl disable firewalld

停止关闭服务

停止服务有俩种方法:快速关闭和标准关闭

1快速关闭

kill -2 54410

2标准的关闭方法

//客户端登录服务,注意,这里通过localhost登录,如果需要远程调用,必须先登录认证才行
mongo --port 27017
//切换到admin库
use admin
//关闭服务
db.shutdownServer()
Last modification:November 17, 2023
如果觉得我的文章对你有用,请随意赞赏