小红书+开发工程师+(一面/二面)面经

发面经接offer

一面(45分钟)

  1. 找两个数组的交集,要求先排序再遍历。
  2. 手写快速排序算法,包括测试和多种测试用例的考虑。
  3. 介绍五种排序算法的思路及其应用场景。
  4. 解释B+树删除元素后的节点合并问题。
  5. 最左匹配原则:为什么联合索引不遵循最左匹配原则就会失效?

  • 原因:在联合索引的情况下,数据是按照索引的第一列排序,只有第一列数据相同时才会按照第二列排序。因此,查询条件中的各个列必须是联合索引中从最左边开始连续的列。如果仅按照第二列搜索,无法使用索引。

  1. 进程通信方式:共享内存和内存映射的区别。

二面(30分钟)

  1. 高并发技术:讨论了分库分表、集群、缓存和消息队列。
  2. 分库分表:用户ID取模100分成100张表,如果100张表的性能不够,如何不停机分成200张?

  • 解决方案:首先评估需要扩充多少表以满足近期需求。扩展到200张表,按照用户ID取模200,如果结果在0~99则插入旧表,如果在100~199则插入新表。同时开启后台任务,遍历旧表,重新取模200,若结果在0~99则不变,若在100~199则复制到新表并删除旧表数据。

  1. Redis分布式锁挂掉的解决方案:

  • 主从复制或集群模式提供高可用性和容错能力。当主节点故障时,从节点接管工作,避免分布式锁挂掉导致系统不可用。
  • 例如在抢红包时,单独拉一台机器使用,不设置过期时间,活动结束后手动清除。

  1. MySQL性能优化:

  • 索引优化、最左匹配原则、深度分页、主从复制等方法。

全部评论
是redstar嘛,小红书正式批是不是还没开
点赞 回复 分享
发布于 2024-08-20 23:58 山西
看看我们呀
点赞 回复 分享
发布于 2024-08-20 23:52 广东

相关推荐

面试官全程关摄像头1.自我介绍一下2.React和Vue哪个更熟悉一点3.你在之前那段实习经历中有没有什么技术性的突破(我只是实习了44天工作28天,我把我能说的都说了)4.你封装的哪个表单组件支不支持动态传值5.自己在实习阶段Vue3项目封装过hook吗6.hook有什么作用7.Vue2和Vue3的响应式区别(我说一个是proxy是拦截所有的底层操作,Object.defineProperty本身就是一个底层操作,有些东西拦截不了,比如数组的一些操作还有等等,面试官就说实在要拦截能不能拦截????我心想肯定不行呀,他的底层机制就不允许吧)8.pinia和vuex的区别(这个回答不出来是我太久没用了)9.pinia和zustand的区别,怎么选(直接给我干懵了)(我说react能用pinia吗  他说要用的话也可以)10.渲染一万条数据,怎么解决页面卡顿问题(我说分页、监听滚轮动态加载,纯数据展示好像还可以用canvas画)(估计是没说虚拟表单,感觉不满意)11.type和interface的区别12.ts的泛型有哪些作用(我就说了一个结构相同但是类型不同的时候可以用,比如请求响应的接口,每次的data不同,这里能用一个泛型,他问我还有什么)13.你项目用的是React,如果让你再写一遍你会选择什么14.pnpm、npm、yarn的区别15.dependencies和devdependencies的区别总而言之太久没面试了,上一段实习的面试js问了很多。结果这次js一点没问,网络方面也没考,表现得很一般,但是知道自己的问题了  好好准备,等待明天的影石360和周四的腾讯了  加油!!!
解zj:大三的第一段面试居然是这样的结局
查看15道真题和解析
点赞 评论 收藏
分享
评论
2
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务