MongoDB(1)--MongoDB安装及简介

一、MongoDB的应用场景及实现原理
二、MongoDB的常用命令及配置
三、手写基于MongoDB的ORM框架
四、基于MongoDB实现网络云盘实战
五、MongoDB 4.0新特性

什么是MongoDB

MySQL

memory 内存引擎

NoSQL最大的特点:
1、默认支持分布式(内置分布式解决方案)
2、高性能,高可用性和可伸缩性

在NoSQL界,
MongoDB是一个最像关系型数据库的非关系型数据库

MongoDB应用场景
适用范围
1)网站实时数据: 例如:日志、Timeline、用户行为(代替方案:用日志)
2)数据缓存:缓存的数据,它一定是临时的 (关系型数据有一份已经持久化)
3)大尺寸、低价值数据存储: 搜索引擎的图片文件、视频文件(结构化),
一份存磁盘、一份存Mongo
4)高伸缩性场景:机器可以任意的增减
5)对象或JSON数据存储: 完全可以选择用Redis

不适用范围
1)高度事务性系统: 例如:金融系统的核心数据
高机密的用户数据(只能选择传统关系型数据库)

2)传统的商业智能应用:结构化查询要求非常高,经常做关联查询统计
(如果都是单表查询,用Java程序来实现关联)
Map,List (id_az_a)


MongoDB 4.0 支持事务操作(分布式事务的一种解决方案)

学习,不要老是找乱七八糟的博客
看不懂,给大家补软肋(新东方英语)

来自文艺界
勤奋、思考(万变不离其宗)


mongo 客户端
mongos 路由器
mongod 数据存储


zookeeper 分布式协调(路由)
把整个集群下面的所有已经注册机器的信息,人手持一份(区块链)
leader选取(leader不存配置信息,监控)


套路差不多
mongos,协调所有的mongod
统一管理配置中心


Master


副本集,认为就是一台存储数据的机器(mongo),
一个副本集数据一定是一个完整的整体

Image镜像

高可用:把一个服务部署多份(一台坏了,另一台可以顶上)

M-S
M-A-S


数据热点:

数据的平均存储问题(传一个视频,切成四份分别存到四张表里面去)
每张表存储的极限(遇到瓶颈)
类似于Map(拆分)Reduce(归并)(Hadoop里面)
怎么切,那是策略


P2P?原来要1个小时,只需要1分钟


分表、分区?

微观的维度(你看不到的一个维度)
chunk(块)-->shard(片) --> Replica Set(副本) --> Data(数据)

宏观的维度(你能看到的)
Field(字段) --> Document(文档) --> Collection(集合) --> DataBase(数据库)

mongodb自3.0版本后新增了wiredTiger的数据存储引擎, 3.2版本后默认采用的wiredTiger, 但是linux32bit不支持此引擎

既然默认的wiredTiger不能用, 那么采用指定引擎为mmapv1吧

mongod --dbpath=/root/mongodb/data --storageEngine=mmapv1

猜你喜欢

转载自www.cnblogs.com/flgb/p/10754011.html