爲什麼Redis 單線程卻能支撐高併發

一.純內存操作

二.核心是基於非阻塞的 IO 多路複用機制

三.單線程反而避免了多線程的頻繁上下文切換問題

個人理解 1:db操作需要操作磁盤 涉及到io所有效率肯定比內存效率低

               2:個人理解就是,redis一次請求需要 連接應答處理器,命令請求處理器,命令回覆處理,而這個io多路複製機制就是會同時監控多個請求,同時把每個請求標記上狀態放入隊列,然後在調用時直接放鬆給處理器就可以了。這樣就省去了判斷請求到達了哪一步,去識別該交於那個處理器這個過程。

              3:如果是多線程,應該需要記錄上一線程數據的內存,而每次線程的變換都需要去處理這塊內存,肯定要話費一定時間。