百度电商 | C++/PHP/Go开发 | 一面(凉经)

前言

1月31号投递,隔了一天约了面试,面完秒挂,不太理解。

一面(2月1日,1h10min)

自我介绍

微服务

  1. 对微服务的理解?
  2. 微服务有哪些优点?
  3. 微服务有哪些缺点?
  4. 微服务如何划分各个模块?

操作系统

  1. 进程和线程的区别?
  2. 协程与线程的区别?
  3. select、poll 和 epoll 之间的区别?
  4. epoll是如何实现的?

计算机网络

  1. 用户输入网址到显示对应页面的全过程?
  2. DNS 的解析过程?
  3. HTTP协议与TCP协议的区别?
  4. TCP 和 UDP 的区别?
  5. TCP三次握手过程?
  6. TCP四次挥手过程?
  7. TCP四次挥手过程中,客户端第一次向服务器发出TCP报文段后处于什么状态?
  8. 为什么连接的时候是三次握手,关闭的时候却是四次挥手?
  9. 为什么客户端的 TIME-WAIT 状态必须等待 2MSL ?
  10. TCP协议如何保证可靠性?

Redis

  1. 单线程Redis为什么这么快?
  2. 讲一下多路复用I/O机制?
  3. Reids的备份功能是单线程还是多线程?
  4. 缓存数据不一致的发生及解决?

Linux

  1. 讲一讲常见的Linux命令?
  2. Linux查看CPU占有率命令?
  3. Linux查看当前进程命令?

MySQL

  1. MySQL 支持哪些存储引擎?
  2. MyISAM 和 InnoDB 的区别有哪些?
  3. InnoDB数据页的大小?
  4. MySQL数据类型有哪些?
  5. 状态表示一般用哪种数据类型?(枚举)
  6. MySQL使用枚举类型的好处?
  7. 索引底层使用的哪种数据结构?
  8. B+树和B树的区别?
  9. 介绍一下事务具有的四个特征?
  10. 事务的原子性如何实现的?
  11. 说一下MySQL 的四种隔离级别以及分别解决的问题?
  12. 什么是幻读?如何解决幻读问题?
  13. 什么是当前读?什么是快照读?
  14. 比较 slect age from table whrer id = 1;slect * from table whrer id = 1;执行效率
  15. 为什么slect * 会导致查询效率低?具体分析一下

场景题

  1. 设计一个游戏排行榜,按照游戏积分排序,积分相同则按照游戏时间排序。

反问

  1. 部门的业务?(电商直播)
  2. 部门的技术栈?
#百度2023校招面经##补录##春招#
全部评论
为什么select*查询效率更低呢?是因为走不了聚簇索引吗
5 回复 分享
发布于 2023-02-09 01:32 北京
可以分享一下八股吗?
2 回复 分享
发布于 2023-02-09 20:54 江苏
这也能挂吗,不理解
1 回复 分享
发布于 2023-02-09 02:04 山西
这是实习吗
1 回复 分享
发布于 2023-02-09 09:00 湖南
MySQL使用枚举类型的好处?mysql还能使用枚举类型吗? 是指java里面的枚举吗? 然后mysql里面表示状态用tinyint数据类型?
1 回复 分享
发布于 2023-02-10 15:51 广东
请问是发邮件投递的吗
点赞 回复 分享
发布于 2023-02-09 14:29 浙江
蹲一个抱团群取暖
点赞 回复 分享
发布于 2023-02-24 15:59 北京
一面没有手撕代码吗?
点赞 回复 分享
发布于 2023-03-06 14:06 北京
讲真,问的挺一般的
点赞 回复 分享
发布于 2023-03-09 10:02 广东
题挺常规的,但是覆盖面很广,要是大部分答上来还被挂就太顶了
点赞 回复 分享
发布于 2023-03-11 08:53 北京
寄,楼主也是面完就共享泡池子了嘛,我早上面完刚一看感叹号了
点赞 回复 分享
发布于 2023-03-13 21:50 北京
离谱 这都能挂
点赞 回复 分享
发布于 2023-03-25 20:24 新加坡
为了用Redis设计一个游戏排行榜,我们可以采用以下方案: 数据结构:Redis中提供了有序集合(Sorted Set)的数据结构,可以用来实现排行榜。在有序集合中,每个元素都有一个分值(score)和一个成员(member),元素按照分值从小到大排序,分值相同时按照字典序排序。 数据存储:我们可以将每个用户的信息(包括用户ID、用户名、游戏积分、游戏时间等)存储为一个有序集合中的一个元素。元素的成员可以是用户ID,分值可以是用户的游戏积分,如果游戏积分相同,则可以将游戏时间作为分值的小数部分,这样可以保证分值不相同。例如,如果用户A的游戏积分是100,游戏时间是10秒,那么可以将用户A的信息存储为元素(score, member) = (100.000010, A)。 排行榜查询:为了查询排行榜,我们可以使用Redis提供的zrevrange命令,可以按照分值从大到小获取指定范围内的元素。例如,如果需要查询排行榜前10名用户的信息,可以使用以下命令: zrevrange <排行榜名称> 0 9 withscores 该命令会返回排行榜前10名用户的信息,包括用户ID和游戏积分。如果需要查询用户的游戏时间等其他信息,可以通过查询数据库或其他缓存来获取。 排名查询:为了查询用户在排行榜上的排名,我们可以使用Redis提供的zrevrank命令,可以获取指定成员的排名。例如,如果需要查询用户A在排行榜上的排名,可以使用以下命令: zrevrank <排行榜名称> A 该命令会返回用户A在排行榜上的排名,如果用户A不在排行榜上,则返回nil。 排行榜更新:为了保证排行榜的实时性,我们可以采用定时任务或者触发器来更新排行榜。当用户的游戏积分或游戏时间发生变化时,可以通过以下命令来更新排行榜: zadd <排行榜名称> <新分值> <成员> 该命令会将指定成员的分值更新为新的分值,并重新排序。 综上所述,以上方案可以用Redis设计一个基本的游戏排行榜系统。当然,为了提高系统的性能和可扩展性,我们还可以采用分布式Redis集群、Redis Sentinel等方式来优化系统设计。
点赞 回复 分享
发布于 2023-03-31 15:57 浙江
这问的也太多了吧
点赞 回复 分享
发布于 2023-08-09 14:33 江苏

相关推荐

23 179 评论
分享
牛客网
牛客企业服务