当前位置: 首页 > 知识库问答 >
问题:

java - 小红书功能的技术架构详细是怎么考虑的?

于飞飙
2024-06-26

小红书发布功能的技术架构详细是怎么考虑的?

最近对小红书的架构比较感兴趣,有以下问题:

  1. 小红书可以上传图片,图片是存储在本地磁盘,还是是存储在云上的嘛,存储过程中图片会不会压缩呢,如果图片删除了,这个图片会不会删除呢,图片图片一样的两张图片是存储两份吗?
  2. 小红书列表是怎么推荐的,推荐算法是什么样的

想要获取到上面问题的答案,或者说开发中遇到这些该怎么去考虑这些问题

共有1个答案

云和惬
2024-06-26

小红书发布功能的技术架构考虑

1. 图片存储与处理

图片存储位置

  • 小红书的图片一般会存储在云存储服务上,如Amazon S3、阿里云OSS等,而不是直接存储在本地磁盘。这是因为云存储提供了高可用、高可扩展性、低维护成本等优势。

图片压缩

  • 在上传过程中,小红书会对图片进行压缩以节省存储空间和提高加载速度。这通常包括调整图片大小、质量、格式等。

图片删除

  • 当用户删除图片时,小红书会从云存储服务中删除相应的图片文件,以释放存储空间。

重复图片处理

  • 对于完全相同的两张图片,小红书通常会进行去重处理,只存储一份图片文件,并为这两张图片建立索引关系,指向同一个文件。这可以节省存储空间并提高查询效率。

2. 列表推荐算法

小红书的列表推荐通常是一个复杂的系统,它结合了多种推荐算法和策略,以满足不同用户的需求和场景。以下是一些可能的推荐算法和考虑因素:

  • 基于内容的推荐:根据用户的历史行为(如浏览、点赞、评论等)和兴趣偏好,为用户推荐相似的内容。
  • 协同过滤推荐:利用用户-物品评分矩阵或用户-物品行为矩阵,计算用户之间的相似度或物品之间的相似度,从而为用户推荐相似用户喜欢的物品或相似物品。
  • 深度学习推荐:利用深度学习模型(如RNN、CNN、Transformer等)对用户的行为数据进行建模,提取特征并学习用户的潜在兴趣,从而为用户进行个性化推荐。
  • 实时推荐:根据用户的实时行为(如搜索、浏览等)和当前的时间、地点等上下文信息,为用户推荐实时相关的内容。
  • 社交关系推荐:利用用户的社交关系(如关注、粉丝等),为用户推荐其关注的人发布的内容或与其有相似兴趣的人喜欢的内容。

在实际开发中,小红书可能会结合上述多种算法和策略,并根据实际业务场景进行调整和优化,以实现更准确的推荐效果。同时,为了处理大量的用户请求和实时更新的数据,小红书还需要考虑分布式系统架构、高性能存储和计算资源、实时数据处理等技术问题。

 类似资料:
  • 时长:1小时 1、项目30分钟 2、Java函数调用过程 3、Volatile关键字的作用? 什么是可见性? 4、假定一个场景:在多线程环境下,线程A在10秒前对一个共享变量修改,线程B在10秒之后读取该共享变量的值,这种情况下需要加Volatile关键字吗? 5、JVM垃圾回收机制 6、常用的垃圾回收算法? 7、GC Root 引用的对象包括哪些? 标记的是有用的对象还是垃圾对象? 8、程序计数

  • 上午投下午约 问项目,三个项目挨个问 40 min Ts omit 父元素三个子元素均等分,方案有多少说多少 算法一道,嘴说 反问 面试表现 部门职能 要了微信  这能叫面经吗,无八股,问了大半天项目哈哈

  • 一面 1. 自我介绍 2. 从url输入到页面展示经历了什么过程 3. 讲一下三次握手 4. 算法:爬楼梯 5. 算法:两数相加 6. 反问 二面 1. 算法:最长子递增序列 2. 算法:二叉树展开为链表 3. TCP和UDP区别 4. 闲聊

  • 9.21 一面, 半小时后挂 1. 自我介绍 2. 项目 3. c++ 多态,如何实现的,虚表、虚表指针存储位置 4. explicit 关键字 5. unique_ptr、shared_ptr、weak_ptr的原理,有没有线程安全问题,weak_ptr的解决了什么问题?可以用裸指针吗?会有什么问题 6. 介绍B树和B+树 7. 介绍unordered_map、map,区别,应用场景 8. c+

  • 小红书C++ 一面(技术面、50min) 面试官问 自我介绍 你简历上的项目比较多样化,为什么会去做这些项目呢 你觉得你以后会想去做什么呢 挑一个你觉得难度最大的项目,然后介绍一下,balabala 项目问题balabala 说一说项目中遇到的一些困难吗 你写这个项目的主要原因是什么 你刚才提到了,那么为什么能加速,其原理是什么呢 的编译从源码到可执行文件中间的步骤有哪些呢? 你了解G++在编译的

  • 更新:--------------------------------- 10月16日hr面 本来以为都凉了,没想到二面还是过了 ----------------------------------------------- 时长:40分钟 1、进程、线程、协程的区别 2、进程的调度算法 3、线程池 4、线程池阻塞队列有哪些?底层别是什么数据结构 5、项目 手撕:二叉树的层序遍历(跟一面一样),面