1. 程式人生 > >mysql 與 redis的區別

mysql 與 redis的區別

Redis和Mysql都是開源的。

Redis是屬於記憶體資料庫,所有的資料都儲存在記憶體中,所以執行增刪改查等操
作執行速度比Mysql相比快速很多,而且支援的資料型別也較全面,支援字串,列表,hash,集合等。但是由於資料是儲存在記憶體中,所以Redis不具備自動容錯和恢復功能。該資料庫在重啟後會丟失資料,然而Redis有rdb持久化策略,儲存資料後會自動生成rdb.dump檔案,裡面存放著每個資料庫中的內容,在重啟後會自動匯入內容。

Mysql是屬於關係型資料庫,所有的資料都儲存在磁碟之中。該資料庫發展時間長所以具備強大的功能,可以相容不同的系統,方便操作轉移而且支援大部分sql查詢語句,有著靈活的許可權和口令。但是在進行檢索的時候就是涉及到IO操作,使用IO排程器進行檢索,該排程器也被稱為電梯,必須一層一層的執行直到底部才能返回,從而大大的降低了執行速度。

mysql偏向於存資料,redis偏向於快速取資料,但redis查詢複雜的表關係時不如mysql,所以可以把熱門的資料放redis,mysql存基本資料

綜合來講這兩種資料庫的優勢也是對方的缺點,所以在開發的時候會一塊使用Mysql和Redis資料庫,互相彌補對方的缺點,當用戶請求的的時候,會先對Redis資料庫進行檢索,如果為找的目標,才會對Mysql進行檢索,很大程度的提高了檢索速度。