针对小红书界面,你如何设计接口,包括主界面,打开帖子界面,有评论、点赞等等

本文主要是介绍针对小红书界面,你如何设计接口,包括主界面,打开帖子界面,有评论、点赞等等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人遇到过的一道设计场景题

1.主界面:

  • 数据库层面
    • MySQL中肯定要有一张简略信息表存储帖子的简略信息,例如帖子的前多少个字,缩略图片,作者,点赞数等
  • 接口:(根据前端传输用户id->查询用户标签->查询主题帖子的接口)接收用户id推荐帖子查询接口、左侧个人功能页接口(可以设置多个)、分类接口(选择某具体类查询帖子结果)、搜索功能接口(接收关键词、后台模糊查询帖子返回)
  • 优化层面
    • 用户获取主页帖子列表肯定要频繁交互,最好将热点帖子简略信息存储到Redis中去,这块可以将热点帖子数据存放到redis中,例如使用lru策略,使redis实时存储一定量的热点帖子及其关联信息
    • 对于热点帖子,点赞、评论等,可以用redis中的zset存储,方便排序,比如按点赞数,按评论时间等;关注信息用set存储,方便确定是否重复关注

2.帖子详情界面:

  • 数据库层面
    • 要有一张帖子详细信息表,用户点击某个帖子以后,去获取帖子详细信息
    • 要有一张评论表,评论表中存储评论信息,关联上帖子id
    • 还要有一张二级评论表,楼中楼评论,关联帖子id+评论id
  • 接口:查询帖子详细信息接口(接收帖子id)、查询帖子关联的评论接口(封装楼中楼评论)、我们评论的接口(接收我们的评论、我们的id、帖子的id)、点赞的接口(帖子的id,点赞数+1)、关注作者的接口(我们的id、作者的id、作者的粉丝数肯定要+1)、收藏的接口(将帖子的id加入到我们收藏列表中)、打开作者主页的接口(给后端我们的id(方便记录访问记录)、作者的id)
  • 优化层面
    • 需要去数据库获取多个表中的数据,例如帖子详细信息表、评论表等多表数据时,可以通过线程池,多表并行查询,配置completablefuture获取线程返回结果拼接,增强响应速度。
    • 热点帖子进行点赞,并发数高,用MQ消息队列,写入redis返回结果,将点赞请求发送给消息队列异步执行,这个不要求强一致性。
    • MySQL可以采用集群(主从集群、读写分离)提高并发能力,Redis也可以采用部署集群提高并发能力

这篇关于针对小红书界面,你如何设计接口,包括主界面,打开帖子界面,有评论、点赞等等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117135

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

Java 的 Condition 接口与等待通知机制详解

《Java的Condition接口与等待通知机制详解》在Java并发编程里,实现线程间的协作与同步是极为关键的任务,本文将深入探究Condition接口及其背后的等待通知机制,感兴趣的朋友一起看... 目录一、引言二、Condition 接口概述2.1 基本概念2.2 与 Object 类等待通知方法的区别

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

vscode不能打开终端问题的解决办法

《vscode不能打开终端问题的解决办法》:本文主要介绍vscode不能打开终端问题的解决办法,问题的根源是Windows的安全软件限制了PowerShell的运行,而VSCode默认使用Powe... 遇到vscode不能打开终端问题,一直以为是安全软件限制问题,也没搜到解决方案,因为影响也不大,就没有管

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及