redis 為啥寫比讀快

2025-04-01 00:20:16 字數 1760 閱讀 4775

1樓:匿名使用者

懲究擠蒜吐親腰休鍾誦。

2樓:匿名使用者

謎義肯摟徒革井鹿場卡。

3樓:匿名使用者

界典議病忍夥至界奴臨。

redis 為什麼那麼快 ?

4樓:一襲可愛風

前段時間面試被問到這個問題了? 我的也是很簡單,總結大概就有兩點 :

事後我我下去又翻了許多資料,主要總結出一下內容 :

因為redis是賀兆基於記憶體的操作,cpu不是redis的瓶頸,redis的瓶頸最有可能是機器記憶體的大小或者網路頻寬。既然單執行緒容易實現,而且cpu不會成為瓶頸,所以 redis 是單執行緒的。

io多路複用是一種同步io模型,實現乙個執行緒可以監視多個檔案控制代碼;一旦某個文洞鍵件控制代碼就緒,就能夠通知應用程式進行相應的讀寫操作;沒有檔案控制代碼就緒時會阻塞禪顫租應用程式,交出cpu。多路是指網路連線,複用指的是同乙個執行緒。

這裡可能有不理解的地方,我嘗試說一下我的理解 :

程序執行都是順序執行的,當我們在執行乙個操作的時候,程序可能阻塞,此時程序就阻塞在這個呼叫上,不能執行其他操作。有沒有什麼解決辦法呢 ? 有!

就是上面說的 io多路複用 。io多路複用本質上是在同乙個執行緒或程序中,通過撥動開關的方式來執行多個io操作。注意實際上每個io操作都是獨立進行的。

只是由原來的一對一變成了多對多。

在 linux 主要有 3 種實現 : select、poll、epoll

select 、poll : 開啟乙個執行緒,隔一段時間去詢問你是否有完成操作 ,如果完成了,你就去執行。

epoll : 當你可以使用的時候,你發訊息去通知,然後執行 。

redis的vm(虛擬記憶體)機制就是暫時把不經常訪問的資料(冷資料)從記憶體交換到磁碟中,從而騰出寶貴的記憶體空間用於其它需要訪問的資料(熱資料)。通過vm功能可以實現冷熱資料分離,使熱資料仍在記憶體中、冷資料儲存到磁碟。這樣就可以避免因為記憶體不足而造成訪問速度下降的問題。

redis提高資料庫容量的辦法有兩種:一種是可以將資料分割到多個redis server上;另一種是使用虛擬記憶體把那些不經常訪問的資料交換到磁碟上。需要特別注意的是redis並沒有使用os提供的swap,而是自己實現。

redis為了保證查詢的速度,只會將value交換出去,而在記憶體中保留所有的key。所以它非常適合key很小,value很大的儲存結構。如果key很大,value很小,那麼vm可能還是無法滿足需求。

相關配置 :

redis為什麼這麼快

5樓:回眸n1的寵愛

1. redis是純記憶體資料庫,一般都是簡單的存取操作,執行緒佔用的時間很多,時間的花費主要集中在io上,所以讀取速度快。

2. 再說一下io,redis使用的是非阻塞io,io多路複用,使用了單執行緒來輪詢描述符,將資料庫的開、關、讀、寫都轉換成了事件,減少了執行緒切換時上下文的切換和競爭。

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

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

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

6樓:網友

key-value的記憶體形式資料庫。當然快!

難道讀高中以後參軍讀大學,就比讀技校好?現在大學生那麼多,找工作都找不到!讀職業學校難道不好嗎

現在找工作擁有一技之長很重要,與其上個三流學校學些純理論知識不如學點實在有用的 在技校能扎扎實實學好一兩門技術 比上個大專和普本強 有一技之長 走到哪都有飯吃 腰桿子也硬。看你學什麼吧 現在中copy國發展還是很快速的,在建造行業和特殊裝備 車輛的需求上還是很高的,焊工鉗工之類的,在海濱城市的造船廠...

小明讀一本書,已讀與未讀的頁數比是1比5,如果再讀,則已讀和未讀的頁數為3比5。這本書共有多少頁

原來已讀的頁數是總頁數的 1 1 5 6分之1 現在已讀的頁數是總頁數的 3 3 5 8分之3 這本書有 30 8分之3 6分之1 144 頁 已讀頁數 全書頁數 1 1 5 1 6讀30頁後,已讀頁數 全書頁數 3 3 5 3 830 3 8 1 6 30 5 24 144 頁 答 這本書共144...

手撕包菜為啥比切的更好吃,手撕包菜為什麼比切的好吃

切的使用刀具,斷裂是強迫性。手撕的是按照植物葉片的紋理,比較容易適合食用,比如有一道菜,手撕牛肉,就比切的好吃,還有我們這裡的手撕雞也是這樣,雖然原始,但是味道很好。手撕包菜為什麼比切的好吃 都是物理過程。撕保持了細胞的完整性,基本上完整的儲存了營養的完整性。同時手撕的葉片比較均勻。切使得葉片的部分...