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

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

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

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

相关文章

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置