您好,登錄后才能下訂單哦!
Redis是單線程的,為上下文切換線程節省了大量時間。
為什么redis是單線程的?
一、官網解釋
由于Redis是基于內存的操作,因此CPU并不是Redis的瓶頸。 Redis的瓶頸很可能是機器內存或網絡帶寬的大小。 既然單線程易于實現并且CPU不會成為瓶頸,那采用單線程解決方案是合乎邏輯的了。
二、性能指標
普通筆記本可以輕松地每秒處理數十萬個請求。
三、詳細原因
1、不需要各種鎖的性能消耗
Redis的數據結構并非全都是簡單的鍵值(Key-Value),而是有復雜的結構,如列表(list)和哈希(hash)。 這些結構可以執行細粒度的操作,例如在長列表后面添加元素并將其添加到哈希(hash)或刪除對象。
這些操作可能需要非常大量的鎖,從而導致同步開銷顯著增加。 簡而言之,在單線程的情況下,不需要考慮各種鎖,沒有鎖釋放操作,也沒有由于可能的死鎖而導致的性能消耗。
2、單線程多進程集群方案
單線程的功能實際上非常強大,每個內核的效率也很高。 與單線程相比,多線程自然可以具有更高的性能限制。 但是,在當今的計算環境中,甚至單機多線程限制通常也無法滿足。需要進一步探索的是多服務器群集群方案,并且這些方案中的多線程技術仍然是不可用的。
所以單線程、多進程的集群不失為一個不錯的解決方案。
以上就是redis為什么是單線程的的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。