redis快的原因

濤濤醬發表於2020-10-07
  1. Redis是純記憶體資料庫,一般都是簡單的存取操作,執行緒佔用的時間很多,時間的花費主要集中在IO上,所以讀取速度快。

  2. Redis使用的是非阻塞IO,IO多路複用,使用了單執行緒來輪詢描述符,將資料庫的開、關、讀、寫都轉換成了事件,減少了執行緒切換時上下文的切換和競爭。多路指的是多個 socket 連線,複用指的是複用一個執行緒。多路複用技術就是讓單個執行緒高效地處理多個連線請求。

  3. Redis採用了單執行緒的模型,保證了每個操作的原子性,也減少了執行緒的上下文切換和競爭。

  4. 另外,資料結構也幫了不少忙,Redis全程使用hash結構,讀取速度快,還有一些特殊的資料結構,對資料儲存進行了優化,如壓縮表,對短資料進行壓縮儲存,再如,跳錶,使用有序的資料結構加快讀取的速度。

  5. 還有一點,Redis採用自己實現的事件分離器,效率比較高,內部採用非阻塞的執行方式,吞吐能力比較大。

轉載自:https://zhuanlan.zhihu.com/p/52600663

相關文章