MongoDB是什么、有哪些优势、对比mysql,es、docker安装

1、MongoDB简介

MongoDB是面向文档的NoSQL数据库(是一个介于关系数据库和非关系数据库之间的产品),用于大量数据存储的分布式文件存储型数据库。基于灵活的json文档模型(BSON),非常适合敏捷式快速开发。具有高可用,高水平扩展能力,处理海量、高并发的数据应用时非常有优势。C++语言开发的

在这里插入图片描述数据库排行榜

2、优势

  1. 易用性:MongoDB是基于json格式的,没有强制的表定义约束,在文档结构发生变化时并不需要如关系型数据库一样执行DDL变更数据库表结构,非常有利于业务的平滑升级,因此MongoDB的开发效率更高,更适合敏捷开发

  2. 高性能:引入WiredTiger存储引擎,在数据检索上做了很多优化,

  3. 高可靠

    1. 单节点MongoDB来说,可以通过Journal机制实现断点保护,这是一种WAL预写日志机制,在发生断电后,可以通过Journal日志来恢复数据,默认情况下Journal最多允许丢失50ms内的更新数据。
    2. 集群节点来说,MongoDB提供副本集架构来支持数据库的高可用,在节点发生宕机时,可以实现秒级切换。
  4. 高可扩展:在集群架构中,数据的读写会均匀的分布到多个数据库节点上,通过分片的方式可以实现按需扩展。在业务数据持续增长时,借助分片集群可以轻松支持海量数据存取。

  5. 完备的索引:支持各种丰富的索引类型,包括单建索引、符合索引、唯一索引、地理空间索引、文本检索索引、TTL索引等

  6. 强大的社区支持:国内外各大云厂商基本都提供MongoDB协议兼容的数据库,有着庞大的用户群体

3、MongoDB、mysql、es对比

功能模块MongoDBmysqlElasticSearch
数据库类型非关系型数据库关系型数据库搜索与数据分析引擎
约束灵活强约束灵活
数据库databasedatabase无库概念
collectiontableindex
rowDocument一条数据Document
字段fieldcolumnfield
分布式分布式借助组件完成分布式
扩容分片分库分表分片
SQL类SQLSQLDSL

4、docker安装MongoDB

下载镜像

docker pull mongo:4.4.5

安装命令

docker run -it -d --name mongo
-v /usr/local/mongodb/data:/data/db
-v /usr/local/mongodb/backup:/data/backup
-e MONGO_INITDB_ROOT_USERNAME=admin
-e MONGO_INITDB_ROOT_PASSWORD=admin
-e TZ=Asia/Shanghai
-p 27017:27017
mongo:4.4.5 mongod --auth

  • -d: 后台运行容器;

  • –name: 指定容器名;

  • -p: 指定服务运行的端口;

  • -v: 映射目录或文件;

  • –privileged 拥有真正的root权限

  • –restart=always Docker服务重启容器也启动

  • -e MONGO_INITDB_ROOT_USERNAME=admin 指定admin库的用户名,并设置超级管理员角色
    dockerhub中描述在这里插入图片描述

  • -e MONGO_INITDB_ROOT_PASSWORD=admin 指定admin库的密码,

  • -e TZ=Asia/Shanghai 设置容器时区

  • mongod --auth :容器默认启动命令是mongod,我们认证需要修改启动命为mongod --auth开启认证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值