我們知道,mysql是持久化存儲,存放在磁盤里面,檢索的話,會涉及到一定的IO,為了解決這個瓶頸,于是出現(xiàn)了緩存,比如現(xiàn)在用的最多的 memcached(簡稱mc)。首先,用戶訪問mc,如果未命中,就去訪問mysql,之后像內存和硬盤一樣,把數(shù)據(jù)復制到mc一部分。
redis和mc都是緩存,并且都是駐留在內存中運行的,這大大提升了高數(shù)據(jù)量web訪問的訪問速度。然而mc只是提供了簡單的數(shù)據(jù)結構,比如 string存儲;redis卻提供了大量的數(shù)據(jù)結構,比如string、list、set、hashset、sorted set這些,這使得用戶方便了好多,畢竟封裝了一層實用的功能,同時實現(xiàn)了同樣的效果,當然用redis而慢慢舍棄mc。
內存和硬盤的關系,硬盤放置主體數(shù)據(jù)用于持久化存儲,而內存則是當前運行的那部分數(shù)據(jù),CPU訪問內存而不是磁盤,這大大提升了運行的速度,當然這是基于程序的局部化訪問原理。
推理到redis+mysql,它是內存+磁盤關系的一個映射,mysql放在磁盤,redis放在內存,這樣的話,web應用每次只訪問redis,如果沒有找到的數(shù)據(jù),才去訪問Mysql。
然而redis+mysql和內存+磁盤的用法最好是不同的。
前者是內存數(shù)據(jù)庫,數(shù)據(jù)保存在內存中,當然速度快。
后者是關系型數(shù)據(jù)庫,功能強大,數(shù)據(jù)訪問也就慢。
像memcache,mongoDB,Redis,都屬于No sql系列。
不是一個類型的東西,應用場景也不太一樣,還是要看你的需求來決定。
總結
以上就是本文關于簡述Redis和MySQL的區(qū)別的全部內容,感興趣的朋友可以參考:sql和MySQL的語句執(zhí)行順序分析、幾個比較重要的MySQL變量、Mysql中FIND_IN_SET()和IN區(qū)別簡析等,如有不足之處,歡迎留言指正。希望對大家有所幫助。
您可能感興趣的文章:- Docker + Nodejs + Kafka + Redis + MySQL搭建簡單秒殺環(huán)境
- PHP的Laravel框架結合MySQL與Redis數(shù)據(jù)庫的使用部署
- 從MySQL到Redis的簡單數(shù)據(jù)庫遷移方法
- CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀錄
- python連接MySQL、MongoDB、Redis、memcache等數(shù)據(jù)庫的方法