天天看點

為什麼Redis單線程卻能支撐高并發

為什麼Redis單線程卻能支撐高并發

一.總結

  1. 純記憶體操作
  2. 核心是基于非阻塞的 IO 多路複用機制
  3. 單線程反而避免了多線程的頻繁上下文切換問題

二.個人了解

  1. db操作需要操作磁盤,涉及到io所有效率肯定比記憶體效率低。
  2. 個人了解就是,redis一次請求需要連接配接應答處理器,指令請求處理器,指令回複處理,而這個io多路複制機制就是會同時監控多個請求,同時把每個請求标記上狀态放入隊列,然後在調用時直接放松給處理器就可以了。這樣就省去了判斷請求到達了哪一步,去識别該交于那個處理器這個過程。
    為什麼Redis單線程卻能支撐高并發
  3. 如果是多線程,應該需要記錄上一線程資料的記憶體,而每次線程的變換都需要去處理這塊記憶體,肯定要話費一定時間。

繼續閱讀