1、项目中使用mongoDB的场景
在项目中我们主要使用mongoDB存储用户行为数据,如点赞、收藏、不喜欢等数据,这些数据量比较大,且操作频繁,而相对来说对时效、事务等要求不是很高,综合考虑,比较适合用mongoDB存储;
2、mongoDB、redis、mysql的选择
数据库名称 | 是否为关系型数据库 | 是否支持事务 | 存储位置 | 读取速度 | 存储数据量 | 适用场景 |
---|---|---|---|---|---|---|
mongDB | 否 | 否 | 硬盘 | 快 | 大 | 对读取速度要求高且数据量很大 |
redis | 否 | 否 | 内存 | 快 | 小 | 对读取速度要求高且数据量较小 |
mysql | 是 | 是 | 硬盘 | 慢 | 大 | 对事务要求很高的重要数据 |
3、行为模块介绍
用户行为模块主要是用户在app端浏览文章时所进行的一系列相关操作,如点赞、关注、收藏、不喜欢等操作,我们统一进行数据收集存储,以便后期可根据这些数据计算热点文章、粉丝、浏览量等相关数据,并且可根据数据进行分析,可精准向用户推送感兴趣的相关文章
4、后台参数是如何校验的
1、人工校验
2、使用hibernate的参数校验框架
@NotNull @Range 在controller中添加@Validated使相关注解生效
当不同的接口需要对同一种参数有不同的校验要求时,可设置分组校验
@NotNull(message = “主键不能为空”, groups = {HeimaValidatorUpdate.class})
@Validated({HeimaValidatorAd