redis與mysql的區別

我們都知道,MySQL是持久化存儲,存放在磁盤裏,檢索的話,會涉及到一定的I/O,爲了解決這個問題,就出現了緩存,首先,用戶訪問網站,如果未命中,就去訪問mysql,之後像內存和磁盤一樣,把數據複製到緩存中

內存與磁盤的關係,磁盤放置主體數據用於持久化存儲,而內存則是當前運行的那部分數據,CPU訪問內存而不是磁盤,這大大提升了運行的速度

前者是內存數據庫,數據保存在內存,當然速度快

而後者是關係型數據庫,功能強大,數據訪問也就慢。



我們知道,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,MongoDBRedis,都屬於No sql系列。
不是一個類型的東西,應用場景也不太一樣,還是要看你的需求來決定。

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