面試官問:redis為什么這么快?

redis為什么這么快 自己總結(jié)的幾個點

一. 基本常識

  • 在計算機中饵史,數(shù)據(jù)是存儲在磁盤中的

    • 磁盤的時間單位
      a. 尋址: ms
      b. 帶寬: G/M

    • 內(nèi)存的時間單位
      a. 尋址: ns

    • 時間單位組成
      秒 > 毫秒 > 微秒 > 納秒

在尋址上满钟,磁盤比內(nèi)存慢了10w倍
  • I/O buff:成本問題

    關(guān)系型數(shù)據(jù)庫隨著文件變大胜榔,速度變慢,為什么湃番?

    硬盤I/O成為瓶頸

    • 磁盤有磁道和扇區(qū)夭织,一個扇區(qū)512byte,容器小就帶來了成本變大:索引

    • 操作系統(tǒng)一次性會讀取4k的數(shù)據(jù)吠撮,就算你只要1k尊惰,操作系統(tǒng)也會一次性從磁盤讀取4k

    • 所以mysql的文件設(shè)計的頁data page也是4k, 剛好滿足操作系統(tǒng)一次讀取的大小,但是當(dāng)文件增大之后泥兰,就 會出現(xiàn)很多的data page頁弄屡,這個時候,查詢速度就會變慢鞋诗,此時就使用了索引 b+樹膀捷。(為什么使用b+樹 等寫mysql相關(guān)時再說)

    • 所以, 當(dāng)數(shù)據(jù)庫表很大的時候削彬,表文件就會很大担孔,性能下降,下降的原因

      • 如果有索引吃警,增刪改的時候會維護索引糕篇,速度會變慢
      • 查詢速度
        a. 1個或少量查詢時依然很快
        b. 并發(fā)大的時候會受到硬盤帶寬的限制影響速度

二. epoll

  • IO的發(fā)展歷程
    • 在操作系統(tǒng)中,每一個I/O都視為一個文件描述符fd

    • BIO

      • BIO的流程酌心,大致可以描述為以下場景
        • 幼兒園(進程)
        • 小朋友(文件描述符fd)
        • 老師(線程)
      • 每一個小朋友需要配一名老師拌消,每個老師會詢問對應(yīng)的小朋友,要不要上廁所(I/O操作)安券,這種操作造成了系統(tǒng)資源的極大浪費
      • jvm:一個線程的成本 1MB
        a. 線程多了產(chǎn)生調(diào)度成本 cpu不停切換線程浪費
        b. 內(nèi)存成本增大
    • NIO

      • NIO的流程可以描述成這樣
      • 幼兒園聘請一個老師墩崩,死循環(huán)的去詢問每一個小朋友(select(Nfd)),要不要上廁所(I/O操作)侯勉,此時就不會浪費系統(tǒng)資源
      • 但此時還是存在一些問題
        a. 當(dāng)小朋友很多的時候鹦筹,一個老師循環(huán)問一遍小朋友就需要花很長的時間
        b. 當(dāng)小朋友要上廁所的時候,需要把小朋友從教室(內(nèi)核)帶到廁所(用戶空間) 整體行為=拷貝fd相關(guān)數(shù)據(jù)
    • epoll

      • epoll是linux系統(tǒng)中對nio多路復(fù)用的優(yōu)化址貌;
      • nio是進程用戶態(tài)中循環(huán)讀取所有的文件描述符進行處理铐拐,如果文件描述符過多的話,循環(huán)遍歷的速度會受到限制练对,并且中間也有從內(nèi)核中讀取的過程遍蟋;
      • epoll使用了一個用戶態(tài)和內(nèi)核態(tài)的共享空間MMAP,將文件描述符都放在共享空間的紅黑樹中螟凭,如果有某個連接發(fā)生事件虚青,就將連接加入到共享空間的鏈表中,然后由用戶態(tài)進行操作
  • 最終總結(jié)

為什么redis快
1. 單線程操作,沒有事務(wù)
2. 直接操作內(nèi)存螺男,不受磁盤IO影響
3. 使用了linux中的epoll對網(wǎng)絡(luò)IO進行優(yōu)化

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棒厘,一起剝皮案震驚了整個濱河市纵穿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奢人,老刑警劉巖谓媒,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異达传,居然都是意外死亡,警方通過查閱死者的電腦和手機迫筑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門宪赶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脯燃,你說我怎么就攤上這事搂妻。” “怎么了辕棚?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵欲主,是天一觀的道長。 經(jīng)常有香客問我逝嚎,道長扁瓢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任补君,我火速辦了婚禮引几,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挽铁。我一直安慰自己伟桅,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布叽掘。 她就那樣靜靜地躺著楣铁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪更扁。 梳的紋絲不亂的頭發(fā)上盖腕,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天,我揣著相機與錄音浓镜,去河邊找鬼赊堪。 笑死,一個胖子當(dāng)著我的面吹牛竖哩,可吹牛的內(nèi)容都是我干的哭廉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼相叁,長吁一口氣:“原來是場噩夢啊……” “哼遵绰!你這毒婦竟也來了辽幌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤椿访,失蹤者是張志新(化名)和其女友劉穎乌企,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體成玫,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡加酵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哭当。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猪腕。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钦勘,靈堂內(nèi)的尸體忽然破棺而出陋葡,到底是詐尸還是另有隱情,我是刑警寧澤彻采,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布腐缤,位于F島的核電站,受9級特大地震影響肛响,放射性物質(zhì)發(fā)生泄漏岭粤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一特笋、第九天 我趴在偏房一處隱蔽的房頂上張望绍在。 院中可真熱鬧,春花似錦雹有、人聲如沸偿渡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溜宽。三九已至,卻和暖如春质帅,著一層夾襖步出監(jiān)牢的瞬間适揉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工煤惩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫉嘀,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓魄揉,卻偏偏與公主長得像剪侮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子洛退,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Redis 到底有多快? 結(jié)果(本地虛擬機) : 結(jié)果(本地虛擬機) : 根據(jù)官方的數(shù)據(jù)彩匕,Redis 的 QPS ...
    源碼之路閱讀 552評論 0 4
  • 久違的晴天腔剂,家長會。 家長大會開好到教室時驼仪,離放學(xué)已經(jīng)沒多少時間了掸犬。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,527評論 16 22
  • 今天感恩節(jié)哎绪爸,感謝一直在我身邊的親朋好友湾碎。感恩相遇!感恩不離不棄毡泻。 中午開了第一次的黨會胜茧,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,571評論 0 11
  • 可愛進取粘优,孤獨成精仇味。努力飛翔,天堂翱翔雹顺。戰(zhàn)爭美好丹墨,孤獨進取。膽大飛翔嬉愧,成就輝煌贩挣。努力進取,遙望没酣,和諧家園王财。可愛游走...
    趙原野閱讀 2,738評論 1 1
  • 在妖界我有個名頭叫胡百曉裕便,無論是何事绒净,只要找到胡百曉即可有解決的辦法。因為是只狐貍大家以訛傳訛叫我“傾城百曉”偿衰,...
    貓九0110閱讀 3,271評論 7 3