1、文档型数据库mongodb:
它是一个内存数据库,数据都是放在内存里面的。
对数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库。
持久化方式:
mongodb的所有数据实际上是存放在硬盘的,所有要操作的数据通过mmap的方式映射到内存某个区域内。
然后,mongodb就在这块区域里面进行数据修改,避免了零碎的硬盘操作。
至于mmap上的内容flush到硬盘就是操作系统的事情了,所以,如果,mongodb在内存中修改了数据后,mmap数据flush到硬盘之前,系统宕机了,数据就会丢失。
2、定义Document和实体转换
定义一个名为mongoCustomConversions的bean,实现Document和实体类的转换。
3、使用场景
常见应用场景:
1. 存log,因为mongodb本身存的就是json,可以很方便的接入各种存储日志的地方。然后可以做成相关监控报表,比如说APM,NPM等,比如说千寻位置
2. 其他的话要看所在的行业了,不同的行业有不同的用法,比如说信息的展示等等
3. 在网游界,MongoDB也非常流行,比如说最近大火的阴阳师,数据库用的就是MongoDB
大数据方面,MongoDB有以下三个优势:
1. 自带sharding,快速得水平扩展,为存储海量数据带来便捷
2. 官方提供驱动,可以直接对接hadoop或者spark
4 Mongodb的优点与不足
(1)Mongodb的不足之处
1、在集群分片中的数据分布不均匀
2、单机可靠性比较差
3、大数据量持续插入,写入性能有较大波动
4、磁盘空间占用比较大
(2)Mongodb的过人之处
1、无模式
2、查询与索引方式灵活,是最像SQL的Nosql
3、支持复制集、主备、互为主备、自动分片等特性