2021 PHP部分面经

前段时间辞职换工作,参加了一些面试,现在也入职了,趁着还不忙稍微整理一下面经(记录一些映像比较深的吧)。

广州-爱拍

给我映像最深的就是它的笔试题了,整整4页,还是双面的,而且很多问题都有好几问的...
勉强记得的几个题:

  • TCP三次握手过程
  • TCP与UDP区别
  • session与cookie的区别
  • TCP发送数据包与接收数据包的过程
  • 浏览器输入网址到显示页面其背后经历的过程
  • 还有一些系统设计的题
  • 算法:最长公共字串
  • ...

面试题记不清了,基本上是项目相关。

广州-4399

等了一会面试官才过来,看起来挺忙的😂

  1. Redis常用的数据结构,除了五种基本数据结构外还有什么数据结构?

string, list, hash, set, zset, HyperLogLog, GEO, bitmap

  1. Redis是单线程的吗?单线程是指哪个模块是单线程?为什么单线程还能保持超高性能?

Redis 6之前是单线程,之后是多线程;I/O模块;epoll I/O复用模型

  1. select, poll, epoll的区别?
  2. 远距离两地的MySQL数据同步,如何实现?异地多活有了解过吗?

没回答上来;听说过,没深入了解

  1. ...

第二面因为时间原因没参加了(HR一直让我在那等...)

广州-爆米科技

  1. php-fpm是什么以及它的工作流程
  2. cgi、fast-cgi的区别
  3. MySQL执行一条SQL时的流程

大概是:权限校验->词法分析->语法分析->语义分析->优化器进行优化->存储引擎查询数据

  1. Redis通过键批量获取值时,如果数据比较多会导致性能下降,如何解决?

将需要获取的键进行分片,依次获取

  1. PHP中对数组进行分片的函数

array_chunk

  1. ...

听面试官说,好像是转转的技术团队二次创业。比较满意的一家,可惜后面打算去深圳了,只能放弃了。

广州-网易游戏

  1. Redis删除一个大数据键值时,有没有什么问题?
  2. 需要从三个物品A, B, C中随机取出一个,如何用一枚硬币做到等概率取?

最简单的就是抛两次,会有四种可能,取其中三种跟三个物品一一对应,如果是第四种就重新抛。

  1. 接口性能比较差,如何排查?
  2. 让你实现一个连接池,如何实现?
  3. OAuth 2.0安全问题
  4. 面了挺久的,问得比较深,只记得一点了...

后来到深圳也面了不少,但是很多都记不起来了,后续有想起来再更新吧。