从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述

目录

消息数据存储入库选型

重要数据入库选型

非重要数据库入库选型

MongoDB的概述

MongoDB术语

MongoDB数据结构


消息数据存储入库选型

重要数据入库选型

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第1张图片

       重要数据比方说我们在这边举个例子,像一些订单数据,还有是一些价格都是在电商系统里面

的。还有是一些商户商铺,一些相关的一些重要信息,像这些信息的话呢,一般都是放到数据库里

面去的,是100%是需要去保存的。保存的同时,那么可能我们再会去结合一些其他的中间件,还

有或者说是一些Nosql,比方说是缓存。或者说是Es啊,把相关的数据再保存,进行一个加速的检

索,这样子的话,我们的对于数据啊,就可以保证他们这些重要的数据。不会丢失,因为它们肯定

会存在于我们的数据库里面.

非重要数据库入库选型

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第2张图片

        除了重要数据以外,还有一些是属于非重要数据,就比方说像我们在平时使用的过程中所产

生的一些日志,日志会有很多,我们都会进行搜集。因为日志太多,太庞大了,不可能会把所有的

日志放到数据库里面去,所以日志它是属于非重要数据,哪怕全部丢失和我们整个系统也是没有什

么关系的。

        还有快照数据啊,什么是快照呢?举个例子,就比方说我们在电商里面的这个订单,我今天

下了一个订单啊。比方说我买了一台手机是5000块钱,过段时间店主他是修改了这个手机,比方

说涨价到6000。当时购买订单,这里面的商品数据是不会发生更改的,所以在我们进行查询的时

候,也不可能是多表关联去查询我们这个商品表。而是他会有一个商品的快照表,会有一个商品在

当时所产生的一个快照信息。所以这个信息的话,它是一种临时的信息数据,当你去逛淘宝或者京

东的时候,你会发现你在早期购买的那些商品数据,它在一开始时会有一个快照数据的。过了一段

时间,可能在清理数据以后,可能就会消失不见,就会有这样的一种情况,这个就是快照,又或者

说我们平时在发送简历的时候。在招聘网站投简历,你投出去的时候其实就是你当时简历信息的一

个快照信息,在后续做更改的时候之前发出去的一个简历,它的之前的信息是不会随着你后续的更

改而发生变化的,所以这些都是属于快照信息。

        此外呢,还有是一些消息数据,什么是消息就是一般说我们像在系统中所发送的一些系统消

息等等。这个就是我们在所要去接触到的一些消息,而且在很多的网站,很多的系统里面都会涉及

到一些类似的消息,消息其实也是一种非重要数据。它是可有可无的,没有完全丢失,对于我们整

个系统也是没什么问题的。

在我们这边的消息是什么样子的呢?

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第3张图片

        这就是我们的消息页面。当有用户在你的视频下方发表了评论,有用户关注了你,还有用户

还有回复你,还有点赞了你的评论,点赞了你的视频。相应的,这些消息数据在这边通通都可以进

行相应的一个展示在这里,这个其实就是我们的一个消息。消息和日志还有快照,对于这些数据

来讲的话,我们一般是可以存在Nosql,MongoDB或者Es里面都可以。在我们这边呢,我们会采

用的一个形式去做一个相应的存储。那么像日志,在我们早期以前的话,我们其实也是放到

MongoDB里面去的。在现如今,我们基本上像日志的采集方面统一的会放到ES里面,另外还有

是快照数据快照,一般来说我们现在也是会放到MongoDB里面去的。所以呢,我们本章节我们所

需要去实现的,和我们持久层交互的就是MongoDB。

MongoDB的概述

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第4张图片

        我们先来看一下这个MongoDB啊,那么MongoDB的话,它其实是Nosql数据库,也就是非关

系型的数据库,它是可以去存储节层数据的。就是因为可以存储json这样的一种文档数据,其实它

的数据格式会非常的灵活,它要比数据库mysql,mariaDB来的更好。同时呢,也可以为

mysqls,mariaDB这样的一个数据库呢,去分摊一部分的流量压力。其实对于一些经常要去读写的

数据的话,它会放到内存里面。如此一来,对于一些热数据的并发性能是相当的高的,从而呢,是

可以去提升整体的一个系统的效率。另外呢,它本身是不支持事务的,对于一些啊非事务的数据,

我们是完全可以保存到里面去的,这些数据往往也都是一些非核心数据。

一般来说啊,我们可以把一些非重要的数据,但是它的一个读写却有着比较大的一个并发的话,那

么我们是可以把它们存储到MongoDB里面去的。比如说像我们自己的一个物流危化运输系统里面

的车辆的运行轨迹gps坐标,还有是大气监测里面的一些动态的指标等等这些数据。

此外呢,MongoDB的话,它还提供了一个GridFS,它是比较适合于一些小文件的存储,那么而且

我们可以自己去把控这个接口的读取的一个权限。它可以去限制的。那么这一点的话也是比较有优

势,对于我们来讲,一般来说啊,人脸的信息啊等等这类图片。我们完全是可以把它们存储到

MongoDB的GridFS里面去的吧。

MongoDB术语

随后我们再来看一下mongo db的一个术语,

在这里我们主要是对比数据库和MongoDB。

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第5张图片

MongoDB数据结构

这里有两个json对象 

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第6张图片

从零开始搭建仿抖音短视频APP--后端消息数据库存储入库选型和MongoBD概述_第7张图片

    它包含了两个json-object,其中UserList在mongodb里面,我们就是称之为是在某一个database

中的collection,它是一个集合。在数据库里面,它其实就是一个用户表。在我们每一个里面其实

可以包含多个json对象,也就是这个大括号,一个大括号就是代表一个对象。在我们的mongodb里

面,它会称之为是document。

        另外,正由于它其实是一个json数据,mongodb它是Nosql数据库,所以在我们进行数据存储

的时候,它的一个存储的字段没有那么的严谨。假设我们现在使用的是数据库,当前有三个字段

user ID,username和age的话,我们在当前表里面所有的每一行的数据,其实它都会包含这三个

属性。如果说你不填的话,那么某一个数据,它就是为空。但是在mongodb里面的话,你可以看

到。在我们第一个对象里面,它是只有三个属性,在下一个对象里面,它多了一个sex,也就是说

它的一个json数据存储的时候,可以让某一个属性里面有值,并且是存在在别的对象里面,它这个

当前属性是可以没有的。那么,这也就是在mongodb里面使用json比较灵活的一个地方。下一个是

属性column,在这里面的user ID user name age sex这些啊,其实都是column,都是对应到我们

数据库表里面的一行一行的。在它的这个mongodb里面,我们称之为是filed的,这个就是我们

MongoDB的一个数据结构。

你可能感兴趣的:(仿抖音APP项目,数据库)