1. 程式人生 > 資料庫 >簡述Redis和MySQL的區別

簡述Redis和MySQL的區別

我們知道,mysql是持久化儲存,存放在磁盤裡面,檢索的話,會涉及到一定的IO,為了解決這個瓶頸,於是出現了快取,比如現在用的最多的 memcached(簡稱mc)。首先,使用者訪問mc,如果未命中,就去訪問mysql,之後像記憶體和硬碟一樣,把資料複製到mc一部分。

  redis和mc都是快取,並且都是駐留在記憶體中執行的,這大大提升了高資料量web訪問的訪問速度。然而mc只是提供了簡單的資料結構,比如 string儲存;redis卻提供了大量的資料結構,比如string、list、set、hashset、sorted set這些,這使得使用者方便了好多,畢竟封裝了一層實用的功能,同時實現了同樣的效果,當然用redis而慢慢捨棄mc。

  記憶體和硬碟的關係,硬碟放置主體資料用於持久化儲存,而記憶體則是當前執行的那部分資料,CPU訪問記憶體而不是磁碟,這大大提升了執行的速度,當然這是基於程式的區域性化訪問原理。

  推理到redis+mysql,它是記憶體+磁碟關係的一個對映,mysql放在磁碟,redis放在記憶體,這樣的話,web應用每次只訪問redis,如果沒有找到的資料,才去訪問Mysql。

  然而redis+mysql和記憶體+磁碟的用法最好是不同的。

前者是記憶體資料庫,資料儲存在記憶體中,當然速度快。

後者是關係型資料庫,功能強大,資料訪問也就慢。

像memcache,mongoDB,Redis,都屬於No sql系列。

不是一個型別的東西,應用場景也不太一樣,還是要看你的需求來決定。

總結

以上就是本文關於簡述Redis和MySQL的區別的全部內容,感興趣的朋友可以參考:sql和MySQL的語句執行順序分析、幾個比較重要的MySQL變數、Mysql中FIND_IN_SET()和IN區別簡析等,如有不足之處,歡迎留言指正。希望對大家有所幫助。