首頁 >資料庫 >Redis >為什麼redis比mysql快

為什麼redis比mysql快

(*-*)浩
(*-*)浩原創
2019-06-17 13:49:074593瀏覽

Redis將所有資料放在記憶體中,非資料同步正常工作中,是不需要從磁碟讀取資料的,0次IO。記憶體反應時間大約為100奈秒,這是Redis速度快的重要基礎。

mysql是持久化存儲,存放在磁碟裡面,檢索的話,會涉及到一定的IO,為了解決這個瓶頸,於是出現了緩存,比如現在用的最多的memcached (簡稱mc)。

為什麼redis比mysql快首先,使用者存取mc,如果未命中,就去存取mysql,之後像記憶體和硬碟一樣,把資料複製到mc一部分redis和mc都是緩存,而且都是駐留在記憶體中運行的,這大大提升了高資料量web存取的存取速度。 (推薦學習:Redis影片教學

然而mc只是提供了簡單的資料結構,例如string儲存;redis卻提供了大量的資料結構,例如string、list、set、hashset、sorted set這些,這使得用戶方便了很多,畢竟封裝了一層實用的功能,同時實現了同樣的效果,當然用redis而慢慢捨棄mc。

Redis是單執行緒。簡化演算法的實現,並發的資料結構實現不但困難且測試也麻煩。第二,單執行緒避免了執行緒切換以及加鎖釋放鎖帶來的消耗,對於服務端開發來說,鎖和執行緒切換通常是效能殺手。當然了,單線也會有它的缺點,也是Redis的惡夢:阻塞。如果執行一個指令太長,那麼會造成其他指令的阻塞,對於Redis是十分致命的,所以Redis是面向快速執行場景的資料庫。

Redis使用epoll作為I/O多路復用技術的實現,再加上Redis自身的事件處理模型將epoll的read、write、close等都轉換成事件,不在網路I/O上浪費過多的時間。實現對多個FD讀寫的監控,提高效能。

mysql用於持久化的儲存資料到硬碟,功能強大,但是速度較慢

redis用於儲存使用較為頻繁的資料到快取中,讀取速度快

更多Redis相關技術文章,請造訪Redis資料庫使用入門教學欄位學習!

以上是為什麼redis比mysql快的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn