1. 程式人生 > 其它 >Redis為什麼這麼快?

Redis為什麼這麼快?

Redis的高併發和快速原因很多,總結一下幾點:

整體架構

  1. Redis是 純記憶體資料庫,一般都是簡單的存取操作,所以速度快(執行緒佔用的時間很多,時間的花費主要集中在IO上)
  2. Redis使用 非阻塞IO,IO多路複用
  3. Redis採用 單執行緒的模型,減少了執行緒的上下文切換和競爭,也保證了每個操作的原子性

優化

  1. 資料結構也幫了不少忙,Redis全程使用hash結構,讀取速度快,還有一些特殊的資料結構,對資料儲存進行了優化,如壓縮表,對短資料進行壓縮儲存,再如,跳錶,使用有序的資料結構加快讀取的速度。
  2. Redis採用自己實現的事件分離器,效率比較高,內部採用非阻塞的執行方式,吞吐能力比較大

完全基於記憶體

Redis是純記憶體資料庫,相對於讀寫磁碟,讀寫記憶體的速度就不是幾倍幾十倍了,一般,hash查詢可以達到每秒百萬次的數量級。

IO多路複用

簡答:一個執行緒通過跟蹤多個IO流的狀態,來管理多個IO流
“多路”指的是多個網路連線,“複用”指的是複用同一個執行緒。採用多路 I/O 複用技術可以讓單個執行緒高效的處理多個連線請求(儘量減少網路IO的時間消耗)。可以直接理解為:單執行緒的原子操作,避免上下文切換的時間和效能消耗;加上對記憶體中資料的處理速度,很自然的提高redis的吞吐量。