1.项目中使用mongoDB的场景
(1)数据量大(2)写入操作频繁(读写都很频繁)(3)价值较低的数据,对事务性要求不高对于这样的数据,我们更适合使用MongoDB来实现数据的存储。社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。本项目用来储存用户的点赞 收藏等信息
2.mongoDB、redis、mysql的选择
| MySQL | MongoDB | redis | |
|---|---|---|---|
| 查询速度(相对) | 慢 | 中 | 快 |
| 支持事务? | 是 | 否 | 是(仅能保证按顺序执行) |
| 存储方式 | 在不同的引擎有不同的存储方式(常涉及IO) | 虚拟内存+持久化 | 全部在内存,定期持久化备份 |
| 数据结构 | 类似于excel | JSON格式和BSON格式 | K-V格式 |
| 关系型? | 是 | 否 | 否 |
| 拓展性 | 可通过分表等操作 | 通过复制集分片等 | 集群分片 |
3.行为模块介绍
用户行为数据的记录包括了关注、点赞、不喜欢、收藏、阅读等行为
这些行为与当前app端的功能实现没有任何关系,即使没有行为数据,功能也不耽误实现,那为什么要做行为数据的保存呢?
黑马头条项目整个项目开发涉及web展示和大数据分析来给用户推荐文章,如何找出哪些文章是热点文章进行针对性的推荐呢?这个时候需要进行大数据分析的准备工作,埋点。
所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如用户某个icon点击次数、阅读文章的时长,观看视频的时长等等。
4.后台参数是如何校验的
利用一个参数校验框架,hibernate validator
它实现了Java定义的一套基于注解的数据校验规范[Bean Validation]
只需使用对应注解即可完成参数校验
