首頁 後端開發 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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 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

如何設定 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 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

PHP和Python:比較兩種流行的編程語言 PHP和Python:比較兩種流行的編程語言 Apr 14, 2025 am 12:13 AM

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

See all articles