首页 后端开发 php教程 记录疫情下PHP中高级面试重点

记录疫情下PHP中高级面试重点

Aug 09, 2021 am 09:35 AM
php

由于疫情的原因,是视频面试,甲方阵容 hr 主管一人,产品经理一人,本次面试直接负责人技术总监 A,另外两人好像是同岗位不同部门负责人 (B 和 C)(嗯,年龄都是 35+)。

话不多说直接上题。 (有些想用冒号分隔的,奈何键盘的冒号键和 tab 好像坏了)

开场时, hr 介绍了本次参与面试的各成员即职位,然后了解他的疑问,产品经理询问了本辞职的原因和想要了解的问题。

接下来正戏开始了。

总监 A: 看你对 MySQL 掌握的很熟练,说说 MySQL 的隔离级别。。

我: MySQL 事务的隔离级别从第到高分别是 读未提交,读已提交,可重复读,串行化,MySQL 默认的隔离级别是 可重复读,事务并发可能引发的问题是 脏读,不可重复读,幻读,然后分别阐述了引发这几种状况的操作即解决方案。

总监 A: 你在实际场景中是更具怎样的策略来修改隔离级别的。

我: …. (这里省略号意思是我胡诌一些场景,其实是有点懵的,因为我只处理过千万级别的访问量数据,但是不是高并发,所以并未涉及修改隔离界别,还是平时思考的深度不够啊)

总监 A: innodb 的索引有哪些,它是怎么实现的。

我: 主键 唯一 普通 联合索引,有 B 树、B + 树、hash 的实现的。

总监 A: 这几中实现有什么区别,你平时设计索引时是更具是什么策略来选择它们的。

我: B 树和 B + 树是在数据在叶子结点上不一样,在树的深度上不一样,相同的检索,B 树要比 B + 树多一次的 IO。 根据实际业务场景来选择不一样索引算法,如果是读多写少,我就会选择 B + 树(实际上内心没底,因为忘了)

总监 A: MySQL 锁的分类,作用,你在实际工作的中使用场景。

我: (此时内心有些打鼓,因为之前面试都是由浅入深)… 然后简述我的理解,但是实际上答案并不满意。因为 B 和 C 也插入其他问题。

总监 B: 分布式熟悉吗,分布式锁怎么实现,了解过 etcd 吗。

我: 可以使用 redis 的 setnx 结合过期时间实现,因为这块我之前在业务中实现过,etcd,这个没了解过(心里就没有这个概念),还,,(被打断)

总监 C: 时间有限,我们继续其他问题,看你做过 PHP 优化,opcahche 是怎么用的。

我: ( 冥思了一下),,操作码解析优化.

总监 C: opcode 呢

我: 这个 没印象了,(这个确实没印象了,因为之前基于业务场景,我从前端,cdn,服务器反向代理,数据库缓存,和程序逻辑代码的优化,项目就有了一个质的提升,但就是唯独没有这个 opchache 和 opcode 的东西接触,失误啊)

总监 C: 简述一下 url 发生的过程,说重点就行

我 浏览器输入 url 之后解析成 IP,然后请求发送到 web 服务器,如果是 nginx 就会通过 cgi 发送给 PHP-FPM,然后等待 PHP 脚本解析,处理逻辑,响应数据。

总监 C: cgi 是什么东西,用来干嘛的

我: cgi 是一个协议,是类似于 PHP 这样的语言和 web 服务器通信一个协议。

总监 B: PHP-FPM 是什么架构模式的,你怎么优化过它。

我: 它是一个 master(主)-worker(工作进程)的架构模式,正真处理请求的是 work 进程,master 主要是管理和回收子进程,优化的话,曾经有更改过它的进程数的配置,我大概简述一下: 由于之前配置的静态模式,默认的 200 个进程数,后来有了一定的并发,我就该改成 “第三种” 配置模式,配置指定数量的进程数,有个最小值和最大值(最大值这里其实是忘了,就是想这肯定不能没有限制,毕竟硬件资源就是天花板呢),然后根据实际的请求数,然后动态的增加进程数量。

总监 B: 还有其他优化吗

我: (沉默了会儿,其实当时修改时还是做了其他修改的,但是确实忘了,感觉此次面试拉跨了),当时确实还做了其他优化来的,,但是想不起来了。

总监 B: 说说你使用到的 rabbitmq 和你对他的理解。

我 : (简述了 rabbitmq 的架构)以及我的使用场景和业务。

总监 B: 说说你用到的 topic 模式

我: ( 简述了 topic 的使用流程,算是过关了)。

总监 A: 说说 redis 分片。

我: 分片 就是将 key 分割到多个 redis 实例的处理过程,利用的是多台计算机的内存,cpu 的处理能力,提高,,,,

总监 A: 怎么样实现排行榜

我: 可以使用 redis 的有序集合,因为它有个分数,,,

总监 A: 用那个函数取值的

我: (回忆了下,确实想不起来了) 这个忘记了,什么 member 的函数。

总监 A: 说说 AOP 的,使用过吗

我: aop 切面编程,就是使用动态代理等技术使功能模块的统一维护,有点像 laravel 的 facade(心里没底,想内比来的,失败)。

总监 A: 说说 hyperf 的特点

我: 基于 swoole,插件化的高性能、高灵活的协程框架,它是依赖注入的容器化,aop 模式,注解模式,事件模式,,,

总监 A: 说说协程池和协程状态管理

我: (这里实际上没有答上来,实际上后来思考了下还是能回答部分的,至少协程状态管理是可以解答的)

总监 A: 如果会 go,这个问题很简单

总监 A: 说说 laravel

我: (这里算是我的强项了,就不一一简述了)

总监 B: 说说 Linux 吧和 shell 脚本

我: (简述了 Linux 以及常用命令和 vi),shell 的表达式和变量定义、使用都是有区别于 PHP 语言的。

总监 C: 看你使用 map reduce 对数据批处理,说说它吧

我 基于 monogo 的 map redcue 对数据处理,,,(被打断)

总监 C: 我还以为使 hadoop 的 map reduce

总监 A: 说说你对未来的规划吧

我: …

以上是我本次视频面试的 100% 还原,后来细细回想,其实很多都是能有解决方案的,但是为什么本次面试的效果如此拉跨呢,,,节奏,,对就是节奏。就是面试官以来就给了 “深” 东西,打乱了我的节奏。

相关推荐:《PHP视频教程》《PHP面试题大汇总(收藏)

以上是记录疫情下PHP中高级面试重点的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

在本章中,我们将了解CakePHP中的环境变量、常规配置、数据库配置和电子邮件配置。

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我们将学习以下与路由相关的主题?

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

See all articles