国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

你好,面試官 | 阿里二面,被問麻了。。

這篇具有很好參考價(jià)值的文章主要介紹了你好,面試官 | 阿里二面,被問麻了。。。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

本期是【你好,面試官】系列文章的第21期,持續(xù)更新中…。

《你好,面試官》系列目前已經(jīng)連載 20 篇了,據(jù)說看了這個(gè)系列的朋友都拿到了大廠offer~

  • 歡迎星標(biāo)+訂閱,持續(xù)更新中。。。致力打造校招核心面試攻略~
  • Java 校招面試網(wǎng)站:www.java2top.cn

考點(diǎn)速查

本期考點(diǎn)涉及,JVM、MySQL高級Redis持久化

本期題改編自 ——2023屆春招 阿里 實(shí)習(xí) 二面

面試現(xiàn)場

叮叮?!?/p>

面試官:“你好,我是XX面試官,請問是小龍嗎?”

小龍:“您好,面試官,我是小龍”

面試官:“好的,現(xiàn)在有空嗎,我們開始面試吧”

小龍:“嗯嗯,準(zhǔn)備好啦”

other questions(自我介紹、項(xiàng)目略)

面試官:“我看你簡歷寫熟悉 JVM,system.gc()一定會(huì)觸發(fā)gc嗎?和full gc有什么關(guān)系?”

獨(dú)白:“wc,平時(shí)還真沒關(guān)注過這個(gè)問題”

小龍:“system.gc() 可以顯示觸發(fā) fullgc,以回收老年代和新生代,釋放無用對象占用的內(nèi)存,底層通過 Runtime . getRuntime() .gc() 調(diào)用?!?/p>

小龍:“但是這個(gè)顯示調(diào)用附帶免責(zé)聲明,只是提醒 JVM 的垃圾收集器執(zhí)行 Full Gc ,具體執(zhí)行與否什么時(shí)候執(zhí)行,還得看收集器。”

面試官:“好的,了解 Redis 持久化嗎?”

小龍:“enen,是這樣的,Redis 為了保證宕機(jī)能恢復(fù)數(shù)據(jù),提供了持久化手段,可以采用RDB、AOF持久化,Redis4.x后更支持RDB、AOF混合持久化?!?/p>

面試官:“那說說 AOF 持久機(jī)制是怎樣的?”

小龍:“簡單來說,AOF 文件是將寫操作命令按照約定的格式保存下來,若宕機(jī)順序執(zhí)行命令即可恢復(fù)數(shù)據(jù);并且它采用 “寫后日志”的模式,即 Redis 先執(zhí)行命令寫內(nèi)存,后寫日志;”

面試官:“為何采用寫后日志呢?”

小龍:“嗯,首先 Redis 執(zhí)行命令先寫內(nèi)存,這樣可以對命令做預(yù)檢,防止錯(cuò)誤命令記錄到日志;同時(shí),記錄AOF日志時(shí),無須對語法做檢查,因此寫后日志還可以避免額外開銷?!?/p>

小龍:“并且,由于是命令執(zhí)行完后再寫日志,也不會(huì)阻塞主進(jìn)程寫操作?!?/p>

面試官:“剛才你說 AOF 是一直追加命令,那隨著時(shí)間推移,這個(gè)AOF文件不會(huì)越來越大嗎,Redis是怎樣處理的呢?”

小龍:“Redis 為了避免 AOF 文件越寫越大,提供了 AOF 重寫機(jī)制?!?/p>

獨(dú)白:“關(guān)于小龍面試經(jīng)典分析全記錄在【面試筆記】中,有詳細(xì)總結(jié)?!?/p>

面試官:“這個(gè)重寫機(jī)制是怎樣的呢?”

小龍:“簡單來說就是,首先知道 AOF 里面存的寫操作命令,但是很多條執(zhí)行命令可能起到的效果最后只需要幾條命令即可實(shí)現(xiàn)?!?/p>

小龍:“重寫即把冗余的命令用新的命令替換,再將新命令記錄到新的 AOF 文件中,最后再替換老的 AOF 文件。”

面試官:“那如果是大量寫入,線程將會(huì)被長時(shí)間阻塞,Redis 是單線程的,這樣就不能處理客戶端的請求命令,怎么辦?”

小龍:“主進(jìn)程是通過 fork 一個(gè) bgrewriteaof 子進(jìn)程進(jìn)行 aof 日志重寫。由于后臺新開進(jìn)程重寫,主進(jìn)程可以繼續(xù)處理命令請求,可以避免阻塞主進(jìn)程。”

小龍:“但是fork子進(jìn)程這個(gè)操作也是主進(jìn)程實(shí)現(xiàn),其中由于要復(fù)制父進(jìn)程的頁表等數(shù)據(jù)結(jié)構(gòu),若頁表過大,便可能阻塞主線程?!?/p>

面試官:“那假如你在寫原來的數(shù)據(jù)時(shí),父進(jìn)程又處理了新的命令,會(huì)造成子父進(jìn)程數(shù)據(jù)不一致嗎?”

獨(dú)白:“這就有裝逼得啦~”

小龍:“子進(jìn)程進(jìn)行日志重寫時(shí),若有新數(shù)據(jù)寫入,主進(jìn)程執(zhí)行完命令后會(huì)將命令寫入到 「AOF 緩沖區(qū)」和 「AOF 重寫緩沖區(qū)」”

小龍:“然后,子進(jìn)程重寫完成后,會(huì)異步向主進(jìn)程發(fā)送一條信號;”

小龍:“主進(jìn)程接收到信息,便將 AOF 重寫緩沖區(qū)中的所有內(nèi)容追加到新的 AOF 的文件中,最后修改文件名,原子切換老文件,完成重寫便保證了數(shù)據(jù)的一致性?!?/p>

面試官:“那如何開啟AOF的?”

小龍:“可以手動(dòng)觸發(fā),也可以文件配置?!?/p>

面試官:“具體說說呢?”

小龍:“可以通過配置 redis.conf 文件來開啟 AOF 持久化 appendonly yes,同時(shí)需要聯(lián)合配置同步策略,觸發(fā)時(shí)機(jī)。但是 AOF 的重寫需要 fork,這是一個(gè)重量級操作,可能會(huì)對 Redis 造成阻塞?!?/p>

小龍:“因此為了不影響 Redis 主進(jìn)程響應(yīng),我們需要盡可能降低 fork 的頻率,降低阻塞,可以通過 bgrewriteaof 手動(dòng)來觸發(fā) AOF 重寫?!?/p>

面試官:“Ok,我看你簡歷寫了 MySQL,說說什么是 MySQL 兩段提交吧?”

小龍:“其實(shí)所謂的兩階段就是把一個(gè)事物分成兩個(gè)階段(prepare、commit)來提交,而實(shí)際上開啟兩階段提交只是為了保證 redolog 和 binlog 日志數(shù)據(jù)的安全一致性?!?/p>

小龍:“若你壓根不需要使用 binlog 進(jìn)行日志備份,主從復(fù)制相關(guān)的,其實(shí)完全可以不用兩階段提交,因?yàn)閮H保證 redolog 成功寫盤就可以保證 crash 的恢復(fù)啦?!?/p>

面試官:“能講一下具體怎樣提交的嗎?”

小龍:“可以完整的分析一下,假如現(xiàn)在需要更新一條數(shù)據(jù),前面肯定都知道會(huì)權(quán)限判斷,詞發(fā)語法分析,優(yōu)化器生成最佳執(zhí)行計(jì)劃,準(zhǔn)備執(zhí)行,執(zhí)行前還會(huì)記錄 undolog 便于回滾,然后開始調(diào)用存儲引擎執(zhí)行 SQL。”

小龍:“此時(shí)若選用 InnoDB 引擎,會(huì)看 buffer pool 里有無相關(guān)數(shù)據(jù),沒有會(huì)將數(shù)據(jù)先加載到 buffer pool 進(jìn)行更新;”

獨(dú)白:“當(dāng)然還涉及到唯一索引,普通索引等細(xì)節(jié),這里不詳細(xì)展開,具體可以看【面試筆記】”

小龍:“最后內(nèi)存數(shù)據(jù)更新后,會(huì)將這個(gè)更新操作會(huì)記錄到 redo log,redo log 處于 prepare 狀態(tài),告知執(zhí)行器執(zhí)行完,可提交事務(wù)?!?/p>

小龍:“執(zhí)行器生產(chǎn)這個(gè)操作的 binlog,并將 binlog 寫入磁盤,執(zhí)行器調(diào)用引擎事務(wù)提交接口,引擎把剛寫入的 redo log 改為 commit 狀態(tài),最后更新完成;”

小龍:“此刻整個(gè)過程完成,最后事務(wù)提交時(shí)便是分兩個(gè)階段提交?!?/p>

面試官:“Ok,用過 explain 嗎,explain 語句會(huì)執(zhí)行 SQl 嗎?”

小龍:“explain 只走到優(yōu)化器,要掃描多少行也只是個(gè)估計(jì)值,并沒有實(shí)際執(zhí)行。它只是一個(gè)執(zhí)行計(jì)劃,生成來自優(yōu)化器關(guān)于 SQL 的執(zhí)行信息,但是如果查詢在 FROM 中子句包括子查詢,MySQL 會(huì)執(zhí)行子查詢”

獨(dú)白:“不愧是我,真男人是也!【面試筆記】在手,大廠 offer 不愁?!?/p>

知識總結(jié)

本期我們通過面試模擬還原阿里二面。訂閱+星標(biāo)持續(xù)追更。

面試重點(diǎn)

Redis 持久化機(jī)制、MySQL undoLog 日志文章來源地址http://www.zghlxwxcb.cn/news/detail-445906.html

到了這里,關(guān)于你好,面試官 | 阿里二面,被問麻了。。的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 阿里二面:Kafka中如何保證消息的順序性?這周被問到兩次了

    在現(xiàn)代分布式系統(tǒng)中,消息順序消費(fèi)扮演著至關(guān)重要的角色。特別是在涉及事務(wù)處理、日志追蹤、狀態(tài)機(jī)更新等場景時(shí),消息的處理順序直接影響著系統(tǒng)的正確性和一致性。例如,金融交易系統(tǒng)中,賬戶間的轉(zhuǎn)賬操作必須嚴(yán)格按照發(fā)出請求的順序進(jìn)行處理,否則可能導(dǎo)致資金

    2024年03月20日
    瀏覽(18)
  • 美團(tuán)一面:說說synchronized的實(shí)現(xiàn)原理?問麻了。。。。

    在現(xiàn)代軟件開發(fā)領(lǐng)域,多線程并發(fā)編程已經(jīng)成為提高系統(tǒng)性能、提升用戶體驗(yàn)的重要手段。然而,多線程環(huán)境下的數(shù)據(jù)同步與資源共享問題也隨之而來,處理不當(dāng)可能導(dǎo)致數(shù)據(jù)不一致、死鎖等各種并發(fā)問題。為此,Java語言提供了一種內(nèi)置的同步機(jī)制—— synchronized ,它

    2024年04月08日
    瀏覽(21)
  • 阿里巴巴測試崗面試記:二面被按地上血虐,所幸Offer已到手...

    阿里巴巴測試崗面試記:二面被按地上血虐,所幸Offer已到手...

    在互聯(lián)網(wǎng)做了幾年之后,去大廠“鍍鍍金”是大部分人的首選。大廠不僅待遇高、福利好,更重要的是,它是對你專業(yè)能力的背書,大廠工作背景多少會(huì)給你的簡歷增加幾分競爭力。 但說實(shí)話,想進(jìn)大廠還真沒那么容易。最近面試阿里巴巴,結(jié)果二面被吊打,不甘心的我整理

    2023年04月20日
    瀏覽(24)
  • 騰訊二面:有 40 億個(gè) QQ 號,限制 1G 內(nèi)存,問如何去重?被問懵了!

    騰訊二面:有 40 億個(gè) QQ 號,限制 1G 內(nèi)存,問如何去重?被問懵了!

    40億個(gè)QQ號,限制1G內(nèi)存,如何去重? 40億個(gè)unsigned int,如果直接用內(nèi)存存儲的話,需要: 4*4000000000 /1024/1024/1024 = 14.9G ,考慮到其中有一些重復(fù)的話,那1G的空間也基本上是不夠用的。 想要實(shí)現(xiàn)這個(gè)功能,可以借助位圖。 使用位圖的話,一個(gè)數(shù)字只需要占用1個(gè)bit,那么40億個(gè)

    2024年02月07日
    瀏覽(15)
  • 程序員面試完之后,人麻了...

    程序員面試完之后,人麻了...

    去面試吧 ? 面不被錄用的試 面hr為了完成任務(wù)的試 面一輪二輪沒有下文試 面需要通勤2小時(shí)的試 面隨時(shí)加班的試 ...... 今年的“金三銀四”被網(wǎng)友們稱為“銅三鐵四”, 招聘軟件上的崗位都能背下來了,簡歷卻依然石沉大海。 好不容易等來個(gè)回復(fù),還不如不回復(fù) 或者是遇到

    2023年04月23日
    瀏覽(20)
  • 阿里二面:如何定位&避免死鎖?連著兩個(gè)面試問到了!

    在面試過程中,死鎖是必問的知識點(diǎn),當(dāng)然死鎖也是我們?nèi)粘i_發(fā)中也會(huì)遇到的一個(gè)問題,同時(shí)一些業(yè)務(wù)場景例如庫存扣減,銀行轉(zhuǎn)賬等都需要去考慮如何避免死鎖,一旦線上發(fā)生了死鎖,那可能年終不保。。。。。下面我們就來聊一聊死鎖如何定位,以及如何避免。 死鎖(

    2024年03月13日
    瀏覽(22)
  • 阿里二面:Java中鎖的分類有哪些?你能說全嗎?

    在多線程并發(fā)編程場景中,鎖作為一種至關(guān)重要的同步工具,承擔(dān)著協(xié)調(diào)多個(gè)線程對共享資源訪問秩序的任務(wù)。其核心作用在于確保在特定時(shí)間段內(nèi),僅有一個(gè)線程能夠?qū)Y源進(jìn)行訪問或修改操作,從而有效地保護(hù)數(shù)據(jù)的完整性和一致性。鎖作為一種底層的安全構(gòu)件,有力地

    2024年03月25日
    瀏覽(18)
  • 面試被問到:測試計(jì)劃和測試方案有什么區(qū)別?

    面試被問到:測試計(jì)劃和測試方案有什么區(qū)別?

    面試的時(shí)候,很多小伙伴都被面試官問過這個(gè)問題 “測試計(jì)劃和測試方案有什么區(qū)別”? 到底有什么區(qū)別呢?我們先好好了解下這兩個(gè)文檔。 1、測試計(jì)劃是什么? 測試計(jì)劃是組織管理層面的文件,從組織管理的角度對一次測試活動(dòng)進(jìn)行規(guī)劃。對測試全過程的測試范圍、組

    2023年04月14日
    瀏覽(22)
  • 面試中常被問到sql優(yōu)化幾種方案

    目錄 一、索引優(yōu)化 二、合理的查詢設(shè)計(jì) 三、分頁優(yōu)化: 四、內(nèi)存管理和緩存: 五、合理使用批量操作: 六、使用連接池: 七、分區(qū)表: 八、避免使用SELECT : 九、數(shù)據(jù)庫升級和優(yōu)化器統(tǒng)計(jì)信息: 十、避免不必要的約束和觸發(fā)器: 十一、使用EXPLAIN分析查詢計(jì)劃: 十二、

    2024年02月10日
    瀏覽(21)
  • 5年測試被裁,去面試差點(diǎn)被問哭了······

    5年測試被裁,去面試差點(diǎn)被問哭了······

    我的個(gè)人背景非常簡單,也可以說絲毫沒有亮點(diǎn)。 學(xué)歷普通,計(jì)算機(jī)專業(yè)二本畢業(yè),畢業(yè)后出來就一直在一家小公司,歲月如梭細(xì),算了下至今從事軟件測試已經(jīng)5年了,也點(diǎn)點(diǎn)點(diǎn)了五年,每天都是重復(fù)的工作,毫無新意,甚至一度的懷疑人生,后來就失業(yè)了,一度頹廢了,

    2024年02月04日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包