MongoDB

MongoDB介绍

一、mongoDB是什么?

MongoDB是一个NoSQL的非关系型数据库 ,支持海量数据存储,高性能的读写。

1. mongo的体系结构

在这里插入图片描述

mongo中的集合相当于mysql中表的概念;
mongo中的文档相当于mysql中行的概念;
mongo中的域相当于mysql中字段/列的概念;

2. mongoDB的特点(或使用场景)

支持存储海量数据;(例如:直播中的打赏数据);
支持频繁的数据读写;(例如:游戏道具);
数据安全性不高,存在数据误差(丢失数据);
mongoDB不支持多表操作,不支持事务;
mongoDB使用Bson存储格式,支持动态字段管理;

3. mongoDB与mysql、redis对比

与redis对比

  1. redis纯内存数据库,内存不足时触发淘汰策略,mongoDB使用内存加磁盘的存储策略具有高扩展性;
  2. mongoDB使用Bson存储格式,支持动态字段管理方便扩展;

与mysql对比

  1. mongoDB不支持多表操作,不支持事务;
  2. mongoDB使用Bson存储格式,支持动态字段管理;

查询效率对比
Redis > MongoDB > MySQL

4. mongoDB存储原理

在这里插入图片描述

  1. mongoDb采用内存加磁盘的方式存储数据;
  2. mongoDb支持数据分片,当单一的服务器中磁盘不够用的时候,还可以串联其他服务器;
  3. 客户端的请求到达内存时,先在日志中记录下操作记录,然后再去操作内存;
  4. 内存中的日志每10ms向磁盘中的日志进行同步一次,数据则每分钟同步一次;
  5. 客户端先去内存中查询数据,内存中没有再去查询磁盘;
  6. 当客户端写入的时候,会先写入到内存中,内存中写入后请求直接返回,内存中的数据会根据同步策略同步到磁盘;
  7. 如果机器宕机,在重启服务的时候会解析磁盘中的日志和磁盘中的数据进行对比,将未入到磁盘中的数据写入磁盘,但可能会丢失10ms的数据;

MongoDB在docker安装

拉容器

docker pull  mongo:latest

创建存储文件

docker volume create mongo-data

运行容器

windows版:
docker run --name mongodb --restart unless-stopped -p 27017:27017 -v mongo-data:/data/db -v /path/to/backup:/data/backup -d mongo:latest
mac版:
docker run --name mongodb --restart unless-stopped -p 27017:27017 -v mongo-data:/data/db -v ~/backup:/data/backup -d mongo:latest

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值