redis與mysql的區別和理論解釋

我們首先先說一下mysql,

mysql是可以持久化儲存的關係型數據庫,功能強大,既然涉及到儲存那肯定要涉及到i/o操作(i/o操作就是輸入(Input)和輸出(Output)的意思)

訪問速度相較於非關係型數據會慢很多,爲了解決這個問題,於是就出現了緩存機制,把一些訪問頻次高的數據緩存一部分到內存中,如果用戶在訪問網站的時候,首先先在緩存中查詢,如果未命中,再去mysql中查詢.

所以如果是訪問量不高的網站的話,完全用mysql一個數據庫其實也可以完整的展現出頁面

然後,再說說redis,

redis是一種非關係型數據庫, 它最大的優點就是訪問數據的速度快,,它是在駐留在內存中運行的,所以訪問的速度更快,其中redis是

key-value的數據結構,每條數據都是一個鍵值對,鍵的類型是字符串,且鍵不能重複,值的類型分爲五種:

  • 字符串string
  • 哈希hash
  • 列表list
  • 集合set
  • 有序集合zset

-------------------------------------------------華麗的分界線------------------------------------------------------------------

終於到了重點部分,如果不想看兩前面的介紹,可以直接跳過,來到這裏.

其中兩者的區別:

1.首先說說他們的本質區別,前者爲關係型數據庫,後者爲非關係型數據庫

2.一個是在磁盤上運行一個是在內存中運行

3.redis的數據相比於mysql,更容易丟失,因爲是儲存在內存中的


順帶提一下,其中普通的緩存中只提供了簡單的數據結構,比如只是簡單的string儲存,但redis就不一樣,它提供了大量的數據結構,其中包括了string,hashset,set,zset,list五中類型,有了這層封裝的功能,這就方便很多了,這是和普通緩存不同的地方.

然後最重要的是實現的功能還一樣,所以慢慢的選擇redis的人更多了

最後說一句,mysql和redis兩者功能並不衝突,可以協同一起使用,效率會更高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章