携程云计算一面

  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 甘肃

相关推荐

06-25 16:00
武汉大学 Java
工科研究生底薪工资就开3k啊??
机械打工仔:写文章提成的岗位工资低,你怪工科?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-24 14:18
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-28 12:15
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
5
16
分享

创作者周榜

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