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

目录

消息数据存储入库选型

重要数据入库选型

非重要数据库入库选型

MongoDB的概述

MongoDB术语

MongoDB数据结构


消息数据存储入库选型

重要数据入库选型

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

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

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

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

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

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

非重要数据库入库选型

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

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

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

么关系的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MongoDB的概述

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

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

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

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

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

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

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

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

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

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

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

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

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

MongoDB的GridFS里面去的吧。

MongoDB术语

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

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

MongoDB数据结构

这里有两个json对象 

    它包含了两个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的一个数据结构。

猜你喜欢

转载自blog.csdn.net/m0_64005381/article/details/127685022
今日推荐