Redis高併發

Redis高併發

Redis的高併發和快速原因

1.Redis基於內存,內存的讀寫速度非常快;

2.Redis是單線程的,爲上下文切換線程節省了大量時間;

3.Redis使用多路複用技術來處理併發連接。 非阻塞IO的內部實現使用epoll,以及由epoll +本身實現的簡單事件框架。 epoll中的讀取,寫入,關閉和連接都被轉換爲事件,然後使用epoll的多路複用功能從不浪費任何時間在io上。

Redis高併發總結

1.Redis是一個純內存數據庫,通常是一個簡單的存取操作, 線程佔用大量時間。 時間主要集中在IO上,因此讀取速度很快。

2.談到IO,Redis使用非阻塞IO,IO多路複用,使用單個線程輪詢描述符,將數據庫的開、關、讀、寫都轉換成了事件,從而減少了線程切換上下文的切換和競爭。

3.Redis使用單線程模型來確保每個操作的原子性,並且還減少了線程上下文切換和競爭。

4.此外,數據結構也有很大幫助。 Redis在整個過程中都使用哈希(hash)結構,該結構易於讀取。還有一些特殊的數據結構,對數據存儲進行了優化,例如壓縮表以及壓縮和存儲短數據。 比如,跳錶,使用有序數據結構來加快讀取速度。

5.還有一點,Redis使用其自己的事件分離器,這是相對有效的。 它在內部使用非阻塞執行方法,並且具有較大的吞吐量。

參考文章:
Redis爲什麼是單線程,高併發快由哪些因素決定?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章