您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關redis比mysql快的案例分析的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
Redis將所有數據放在內存中,非數據同步正常工作中,是不需要從磁盤讀取數據的,0次IO。內存響應時間大約為100納秒,這是Redis速度快的重要基礎。
mysql是持久化存儲,存放在磁盤里面,檢索的話,會涉及到一定的IO,為了解決這個瓶頸,于是出現了緩存,比如現在用的最多的 memcached(簡稱mc)。
首先,用戶訪問mc,如果未命中,就去訪問mysql,之后像內存和硬盤一樣,把數據復制到mc一部分redis和mc都是緩存,并且都是駐留在內存中運行的,這大大提升了高數據量web訪問的訪問速度。
然而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比mysql快的案例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。