1. mysql和redis的資料庫型別
mysql是關係型資料庫,主要用於存放持久化資料,將資料儲存在硬碟中,讀取速度較慢.
redis是nosql,即非關係型資料庫,也是快取資料庫,即將資料儲存在快取中,快取的讀取速度快,能夠大大的提高執行效率,但是儲存時間有限.
2. mysql的執行機制
mysql作為持久化儲存的關係型資料庫,相對薄弱的地方在於每次請求訪問資料庫時,都存在著i/o操作,如果反覆頻繁的訪問資料庫.第一:會在反覆鏈結資料庫上花費大量時間,從而導致執行效率過慢;第二:反覆的訪問資料庫也會導致資料庫的負載過高,那麼此時快取的概念就衍生了出來.
3. 快取
快取就是資料交換的緩衝區(cache)當瀏覽器執行請求時,首先會對在快取中進行查詢,如果存在就獲取;否則就訪問資料庫.
快取的好處就是讀取速度快.
4. redis資料庫
redis資料庫就是一款快取資料庫,用於儲存使用頻繁的資料,這樣減少訪問資料庫的次數,提高執行效率.
5. redis和mysql的區別總結
5.1 型別上
從型別上來說,mysql是關係型資料庫,redis是快取資料庫.
5.2 作用上
mysql用於持久化的儲存資料到硬碟,功能強大,但是速度較慢
redis用於儲存使用較為頻繁的資料到快取中,讀取速度快.
5.3 需求上
mysql和redis因為需求的不同,一般都是配合使用.
5.4 場景選型上
redis和mysql要根據具體業務場景去選型.
5.5 存放位置
資料存放位置mysql:資料放在磁碟
redis:資料放在記憶體
5.6 適合存放資料型別
redis適合放一些頻繁使用,比較熱的資料,因為是放在記憶體中,讀寫速度都非常快,一般會應用在下面一些場景:排行榜、計數器、訊息佇列推送、好友關注、粉絲.
6. 資料可不可以直接全部用redis儲存呢?
6.1 首先要知道mysql儲存在磁碟裡,redis儲存在記憶體裡,redis既可以用來做持久儲存,也可以做快取,而目前大多數公司的儲存都是mysql + redis,mysql作為主儲存,redis作為輔助儲存被用作快取,加快訪問讀取的速度,提高效能.
6.2 redis儲存在記憶體中,如果儲存在記憶體中,儲存容量肯定要比磁碟少很多,那麼要儲存大量資料,只能花更多的錢去購買記憶體,造成在一些不需要高效能的地方是相對比較浪費的,所以目前基本都是mysql(主) + redis(輔),在需要效能的地方使用redis,在不需要高效能的地方使用mysql,好鋼用在刀刃上.
6.3 mysql支援sql查詢,可以實現一些關聯的查詢以及統計.
6.4 redis對記憶體要求比較高,在有限的條件下不能把所有資料都放在redis.
6.5 mysql偏向於存資料,redis偏向於快速取資料,但redis查詢複雜的表關係時不如mysql,所以可以把熱門的資料放redis,mysql存基本資料.
redis與mysql的區別
我們都知道,mysql是持久化儲存,存放在磁碟裡,檢索的話,會涉及到一定的i o,為了解決這個問題,就出現了快取,首先,使用者訪問 如果未命中,就去訪問mysql,之後像記憶體和磁碟一樣,把資料複製到快取中 記憶體與磁碟的關係,磁碟放置主體資料用於持久化儲存,而記憶體則是當前執行的那部分資料,cpu...
mysql 與 redis的區別
redis和mysql都是開源的。redis是屬於記憶體資料庫,所有的資料都儲存在記憶體中,所以執行增刪改查等操 作執行速度比mysql相比快速很多,而且支援的資料型別也較全面,支援字串,列表,hash,集合等。但是由於資料是儲存在記憶體中,所以redis不具備自動容錯和恢復功能。該資料庫在重啟後會...
MySQL與Redis的區別 詳細!
mysql是關係型資料庫,主要用於存放持久化資料,將資料儲存在硬碟中,讀取速度較慢。redis是nosql,即非關係型資料庫,也是快取資料庫,即將資料儲存在快取中,快取的讀取速度快,能夠大大的提高執行效率,但是儲存時間有限。mysql作為持久化儲存的關係型資料庫,相對薄弱的地方在於每次請求訪問資料庫...