携程云计算一面

  1. 自我介绍
  2. 非科班,问了一下专业和计算机有什么关系
  3. 对docker、k8s、监控系统等有无了解

项目相关

  1. 项目是课程设计吗

  2. 为什么你用go实现的redis服务端测试结果略优于redis,有分析过是什么原因吗

    第一点是应用了Golang优秀的并发性能,每一个Redis连接都会启一个协程去服务它;而Redis线程模型的命令处理部分是单线程 而第二点比较主要的原因是,测试性能的时候,都关闭了aof持久化的设置 第二点比较关键吧,因为我也提到了golang实现redis服务端时,遇到的一个难点是aof重写实现比较复杂。所以比较的时候没有开启aof持久化的设置

  3. 如果开启aof设置,有没有测过性能吗

    开启aof持久化,关闭rdb持久化,aof刷盘策略为everysec时: 50个连接、100000个请求下:写接口比Redis少2000,大概在25000qps

  4. 实现的刷盘策略原理是什么介绍一下

    刷盘策略是按照redis三种策略 always、everysec、no来写的。刷盘策略的不同在于调用 fsync 的时机不同 在我的实现中,比如always策略,是每次将写命令write进aof文件后,就同步调用 sync,将数据真正刷入磁盘;而 everysec策略是起一个后台协程,每秒调用一次sync来刷盘,而no策略是由内核决定刷盘的时机

  5. fsync在刷盘这块是怎么用的,刚刚没听清

    比如像always策略,我们将对数据库的写操作的resp协议文本 write进aof文件中,此时数据只在缓存中,我们会同步调用sync去将数据真正刷入磁盘;而everysec就是后台协程每秒调用sync刷入磁盘

  6. always策略每次写都要刷,磁盘io是不是会爆了?

    对,我们一般推荐使用的是 everysec策略,redis自己也推荐使用 everysec策略。真的要用到always策略,也是哪些对数据可靠性要求比较高的业务。不过这些不适合用内存型kv数据库去存储 八股

  7. 让你用栈来实现队列的先进先出,你会如何实现,用几个栈

  8. golang实现一个限流器

  9. mysql索引为什么用B+树

    B+树的特性是叶子节点存了全量数据,而非叶子节点只存储键值和索引 一般我们是将它和B树进行比较, 第一个点:讲节点的增加或删除,由于B+树冗余节点比较多,所以变形操作不会很复杂 第二个点:由于非叶子节点仅存储键值,所以同一个数据页可以存放更多索引,B+树更矮胖;而像B树或者二叉搜索树等,它们的高度在数据量很大情况下比较高,所以磁盘io更多 第三个点:B+树叶子节点通过链表组织起来,范围查询效率更高,而B树等需要通过中序遍历 算法

  10. 滑动窗口题目,很简单 杂项

  11. 对前端开发有兴趣吗

  12. 评价一下自己,比起其他同学有什么优势

  13. 反问

#携程#
全部评论
k8s是什么系统呀?
1 回复 分享
发布于 2023-05-18 10:42 浙江
golang实现一个限流器怎么做呀?
点赞 回复 分享
发布于 2023-05-18 10:30 甘肃

相关推荐

不愿透露姓名的神秘牛友
今天 12:11
我最近都有点不想活了,天天早10晚11的,还问我爱不爱她目前的状态别说爱谁了,没扇谁就不错了。是不是大家都是一进节子,只有工作没有爱情了
AzureSkies:在字节的时候找的就是字节的,飞书太适合恋爱人士了,能看到是不是已读,是不是在会议中。简直冥婚好伴侣
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
5
16
分享

创作者周榜

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