<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          穩(wěn)了!學(xué)會(huì)這些PHP面試題成功拿下offer

          共 2600字,需瀏覽 6分鐘

           ·

          2021-11-19 18:20

          由于疫情的原因,是視頻面試,甲方陣容 hr 主管一人,產(chǎn)品經(jīng)理一人,

          本次面試直接負(fù)責(zé)人技術(shù)總監(jiān) A,另外兩人好像是同崗位不同部門負(fù)責(zé)人 (B 和 C)(嗯,年齡都是 35+)。


          話不多說直接上題。?


          開場時(shí), hr 介紹了本次參與面試的各成員即職位,然后了解他的疑問,產(chǎn)品經(jīng)理詢問了本辭職的原因和想要了解的問題。


          接下來正戲開始了。


          總監(jiān) A:看你對(duì) MySQL 掌握的很熟練,說說 MySQL 的隔離級(jí)別。。

          我:MySQL 事務(wù)的隔離級(jí)別從第到高分別是 讀未提交,讀已提交,可重復(fù)讀,串行化,MySQL 默認(rèn)的隔離級(jí)別是 可重復(fù)讀,事務(wù)并發(fā)可能引發(fā)的問題是 臟讀,不可重復(fù)讀,幻讀,然后分別闡述了引發(fā)這幾種狀況的操作即解決方案。


          總監(jiān) A:你在實(shí)際場景中是更具怎樣的策略來修改隔離級(jí)別的。

          我:…. (這里省略號(hào)意思是我胡謅一些場景,其實(shí)是有點(diǎn)懵的,因?yàn)槲抑惶幚磉^千萬級(jí)別的訪問量數(shù)據(jù),但是不是高并發(fā),所以并未涉及修改隔離界別,還是平時(shí)思考的深度不夠啊)


          總監(jiān) A:innodb 的索引有哪些,它是怎么實(shí)現(xiàn)的。

          我:主鍵 唯一 普通 聯(lián)合索引,有 B 樹、B + 樹、hash 的實(shí)現(xiàn)的。


          總監(jiān) A:這幾中實(shí)現(xiàn)有什么區(qū)別,你平時(shí)設(shè)計(jì)索引時(shí)是更具是什么策略來選擇它們的。

          我:B 樹和 B + 樹是在數(shù)據(jù)在葉子結(jié)點(diǎn)上不一樣,在樹的深度上不一樣,相同的檢索,B 樹要比 B + 樹多一次的 IO。根據(jù)實(shí)際業(yè)務(wù)場景來選擇不一樣索引算法,如果是讀多寫少,我就會(huì)選擇 B + 樹(實(shí)際上內(nèi)心沒底,因?yàn)橥耍?/span>


          總監(jiān) A:MySQL 鎖的分類,作用,你在實(shí)際工作的中使用場景。

          我:(此時(shí)內(nèi)心有些打鼓,因?yàn)橹懊嬖嚩际怯蓽\入深)… 然后簡述我的理解,但是實(shí)際上答案并不滿意。因?yàn)?B 和 C 也插入其他問題。


          總監(jiān) B:分布式熟悉嗎,分布式鎖怎么實(shí)現(xiàn),了解過 etcd 嗎。

          我:可以使用 redis 的 setnx 結(jié)合過期時(shí)間實(shí)現(xiàn),因?yàn)檫@塊我之前在業(yè)務(wù)中實(shí)現(xiàn)過,etcd,這個(gè)沒了解過(心里就沒有這個(gè)概念),還,,(被打斷)


          總監(jiān) C:時(shí)間有限,我們繼續(xù)其他問題,看你做過 PHP 優(yōu)化,opcahche 是怎么用的

          我:( 冥思了一下),,操作碼解析優(yōu)化.

          總監(jiān) C:opcode 呢

          我:這個(gè) 沒印象了,(這個(gè)確實(shí)沒印象了,因?yàn)橹盎跇I(yè)務(wù)場景,我從前端,cdn,服務(wù)器反向代理,數(shù)據(jù)庫緩存,和程序邏輯代碼的優(yōu)化,項(xiàng)目就有了一個(gè)質(zhì)的提升,但就是唯獨(dú)沒有這個(gè) opchache 和 opcode 的東西接觸,失誤啊)更多面試講解,微信搜索【碼農(nóng)編程進(jìn)階筆記】


          總監(jiān) C:簡述一下 url 發(fā)生的過程,說重點(diǎn)就行

          我 瀏覽器輸入 url 之后解析成 IP,然后請求發(fā)送到 web 服務(wù)器,如果是 nginx 就會(huì)通過 cgi 發(fā)送給 PHP-FPM,然后等待 PHP 腳本解析,處理邏輯,響應(yīng)數(shù)據(jù)。


          總監(jiān) C:cgi 是什么東西,用來干嘛的

          我:cgi 是一個(gè)協(xié)議,是類似于 PHP 這樣的語言和 web 服務(wù)器通信一個(gè)協(xié)議。


          總監(jiān) B:PHP-FPM 是什么架構(gòu)模式的,你怎么優(yōu)化過它。

          我:它是一個(gè) master(主)-worker(工作進(jìn)程)的架構(gòu)模式,正真處理請求的是 work 進(jìn)程,master 主要是管理和回收子進(jìn)程,優(yōu)化的話,曾經(jīng)有更改過它的進(jìn)程數(shù)的配置,我大概簡述一下:由于之前配置的靜態(tài)模式,默認(rèn)的 200 個(gè)進(jìn)程數(shù),后來有了一定的并發(fā),我就該改成 “第三種” 配置模式,配置指定數(shù)量的進(jìn)程數(shù),有個(gè)最小值和最大值(最大值這里其實(shí)是忘了,就是想這肯定不能沒有限制,畢竟硬件資源就是天花板呢),然后根據(jù)實(shí)際的請求數(shù),然后動(dòng)態(tài)的增加進(jìn)程數(shù)量。


          總監(jiān) B:還有其他優(yōu)化嗎

          我:(沉默了會(huì)兒,其實(shí)當(dāng)時(shí)修改時(shí)還是做了其他修改的,但是確實(shí)忘了,感覺此次面試?yán)缌耍?dāng)時(shí)確實(shí)還做了其他優(yōu)化來的,,但是想不起來了。


          總監(jiān) B:說說你使用到的 rabbitmq 和你對(duì)他的理解。

          我 :(簡述了 rabbitmq 的架構(gòu))以及我的使用場景和業(yè)務(wù)。

          總監(jiān) B:說說你用到的 topic 模式

          我:( 簡述了 topic 的使用流程,算是過關(guān)了)。


          總監(jiān) A:說說 redis 分片。

          我:分片 就是將 key 分割到多個(gè) redis 實(shí)例的處理過程,利用的是多臺(tái)計(jì)算機(jī)的內(nèi)存,cpu 的處理能力,提高,,,,

          總監(jiān) A:怎么樣實(shí)現(xiàn)排行榜

          我:可以使用 redis 的有序集合,因?yàn)樗袀€(gè)分?jǐn)?shù),,,

          總監(jiān) A:用那個(gè)函數(shù)取值的

          我:(回憶了下,確實(shí)想不起來了) 這個(gè)忘記了,什么 member 的函數(shù)。


          總監(jiān) A:說說 AOP 的,使用過嗎

          我:aop 切面編程,就是使用動(dòng)態(tài)代理等技術(shù)使功能模塊的統(tǒng)一維護(hù),有點(diǎn)像 laravel 的 facade(心里沒底,想內(nèi)比來的,失敗)。


          總監(jiān) A:說說 hyperf 的特點(diǎn)

          我:基于 swoole,插件化的高性能、高靈活的協(xié)程框架,它是依賴注入的容器化,aop 模式,注解模式,事件模式,,,

          總監(jiān) A:說說協(xié)程池和協(xié)程狀態(tài)管理

          我:(這里實(shí)際上沒有答上來,實(shí)際上后來思考了下還是能回答部分的,至少協(xié)程狀態(tài)管理是可以解答的)

          總監(jiān) A:如果會(huì) go,這個(gè)問題很簡單


          總監(jiān) A:說說 laravel

          我:(這里算是我的強(qiáng)項(xiàng)了,就不一一簡述了)


          總監(jiān) B:說說 Linux 吧和 shell 腳本

          我:(簡述了 Linux 以及常用命令和 vi),shell 的表達(dá)式和變量定義、使用都是有區(qū)別于 PHP 語言的。更多面試講解,微信搜索【碼農(nóng)編程進(jìn)階筆記


          我 基于 monogo 的 map redcue 對(duì)數(shù)據(jù)處理,,,(被打斷)

          總監(jiān) C:我還以為使 hadoop 的 map reduce

          總監(jiān) A:說說你對(duì)未來的規(guī)劃吧

          我:…


          以上是我本次視頻面試的 100% 還原,后來細(xì)細(xì)回想,其實(shí)很多都是能有解決方案的,但是為什么本次面試的效果如此拉跨呢,,,節(jié)奏,,對(duì)就是節(jié)奏。就是面試官以來就給了 “深” 東西,打亂了我的節(jié)奏。

          這些面試題你都能答上來嗎?歡迎下方留言討論!

          ??編 者?寄語

          持續(xù)更新,每天進(jìn)步一點(diǎn)點(diǎn)。。。

          瀏覽 53
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜草av | 欧美抄逼视频播放 | 国产成人免费观看视频 | 国产女人视频 | 欧美强乱中文字幕在线 |