聊聊QQ背后的技術(shù)實(shí)現(xiàn)
點(diǎn)擊下方“JavaEdge”,選擇“設(shè)為星標(biāo)”
免責(zé)聲明~
任何文章不要過度深思!
萬事萬物都經(jīng)不起審視,因?yàn)槭郎蠜]有同樣的成長環(huán)境,也沒有同樣的認(rèn)知水平,更「沒有適用于所有人的解決方案」;
不要急著評(píng)判文章列出的觀點(diǎn),只需代入其中,適度審視一番自己即可,能「跳脫出來從外人的角度看看現(xiàn)在的自己處在什么樣的階段」才不為俗人。
怎么想、怎么做,全在乎自己「不斷實(shí)踐中尋找適合自己的大道」
1 QQ咋實(shí)現(xiàn)數(shù)據(jù)瞬間查詢的?
比如通過QQ號(hào)或者昵稱找用戶,得有幾億條數(shù)據(jù)了吧?
建個(gè)集霸索引,你的QQ號(hào)去mod 100分庫不是更快!所有QQ號(hào)分100個(gè)數(shù)據(jù)庫,按QQ號(hào)最后兩位決定在哪個(gè)庫。就算20億qq號(hào),取模分成100等分 每份也才2000萬條數(shù)據(jù),差不多剛到b+tree的三四層,差不多四次io就能查出來
2 QQ號(hào)碼,int還是string?
爭論很激烈,不知道誰對(duì)誰錯(cuò)……相信有大神!
反正內(nèi)幕消息,騰訊內(nèi)部統(tǒng)一從int32切換到int64,并作為規(guī)范保留。
而且騰訊自家的應(yīng)用,使用16進(jìn)制都能夠登錄,電腦版qq,你可以使用16進(jìn)制來登錄,只需要在前面加上0x即可
比如0x6864B95D,其實(shí)就是1751431517。然后就可以用0x6864B95D,如果用string實(shí)現(xiàn)的話會(huì)加大代碼復(fù)雜程度。
寫在最后
公眾號(hào):JavaEdge專注分享軟件開發(fā)全生態(tài)相關(guān)技術(shù)文章、視頻教程資源、熱點(diǎn)資訊等,如果喜歡我的分享,給 ???? 點(diǎn)一個(gè)贊?? 或者 ?關(guān)注都是對(duì)我最大的支持。
歡迎長按圖片加好友,我會(huì)第一時(shí)間和你分享軟件行業(yè)趨勢(shì),面試資源,學(xué)習(xí)途徑等等。
添加好友備注【技術(shù)群交流】拉你進(jìn)技術(shù)交流群
關(guān)注公眾號(hào)后,在后臺(tái)私信:
-
回復(fù)【架構(gòu)師】,獲取架構(gòu)師學(xué)習(xí)資源教程 -
回復(fù)【面試】,獲取最新最全的互聯(lián)網(wǎng)大廠面試資料 -
回復(fù)【簡歷】,獲取各種樣式精美、內(nèi)容豐富的簡歷模板 -
回復(fù) 【路線圖】,獲取直升Java P7技術(shù)管理的全網(wǎng)最全學(xué)習(xí)路線圖 -
回復(fù) 【大數(shù)據(jù)】,獲取Java轉(zhuǎn)型大數(shù)據(jù)研發(fā)的全網(wǎng)最全思維導(dǎo)圖 -
更多教程資源應(yīng)有盡有,歡迎 關(guān)注,慢慢獲取
