2021Java大廠面試經驗分享,Java知識總結
1、為什麼使用redis
分析:博主覺得在專案中使用redis,主要是從兩個角度去考慮:效能和併發。當然,redis還具備可以做分散式鎖等其他功能,但是如果只是為了分散式鎖這些其他功能,完全還有其他中介軟體(如zookpeer等)代替,並不是非要使用redis。因此,這個問題主要從效能和併發兩個角度去答。
回答:如下所示,分為兩點
(一)效能
如下圖所示,我們在碰到需要執行耗時特別久,且結果不頻繁變動的SQL,就特別適合將執行結果放入快取。這樣,後面的請求就去快取中讀取,使得請求能夠迅速響應。
題外話:忽然想聊一下這個迅速響應的標準。其實根據互動效果的不同,這個響應時間沒有固定標準。不過曾經有人這麼告訴我:"在理想狀態下,我們的頁面跳轉需要在瞬間
那麼瞬間、剎那、一彈指具體是多少時間呢?
根據《摩訶僧祗律》記載
一剎那者為一念,二十念為一瞬,二十瞬為一彈指,二十彈指為一羅預,二十羅預為一須臾,一日一夜有三十須臾。
那麼,經過周密的計算,一瞬間為0.36 秒,一剎那有 0.018 秒.一彈指長達 7.2 秒。
(二)併發
如下圖所示,在大併發的情況下,所有的請求直接訪問資料庫,資料庫會出現連線異常。這個時候,就需要使用redis做一個緩衝操作,讓請求先訪問到redis,而不是直接訪問資料庫。
2、使用redis有什麼缺點
分析:大家用redis這麼久,這個問題是必須要了解的,基本上使用redis都會碰到一些問題,常見的也就幾個。
回答:主要是四個問題
(一)快取和資料庫雙寫一致性問題
(二)快取雪崩問題
(三)快取擊穿問題
(四)快取的併發競爭問題
最後總結我的面試經驗
2021年的金三銀四一眨眼就到了,對於很多人來說是跳槽的好機會,大廠面試遠沒有我們想的那麼困難,擺好心態,做好準備,你也可以的。
另外,面試中遇到不會的問題不妨嘗試講講自己的思路,因為有些問題不是考察我們的程式設計能力,而是邏輯思維表達能力;最後平時要進行自我分析與評價,做好職業規劃,不斷摸索,提高自己的程式設計能力和抽象思維能力。
BAT面試經驗
實戰系列:Spring全家桶+Redis等
其他相關的電子書:原始碼+調優
面試真題: