說起緩存框架,我們最常用的緩存框架有 memcached、redis 這兩個(gè),但它們之間其實(shí)是有差異的。
創(chuàng)新互聯(lián)是專業(yè)的彭州網(wǎng)站建設(shè)公司,彭州接單;提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行彭州網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
Memcached 的誕生
2003年5月,Brad Fitzpatrick 發(fā)布了第一個(gè)版本的 Memcached,一開始主要是為了解決 LiveJournal 網(wǎng)站訪問緩存問題而誕生的,這個(gè)版本的 Memcached 使用 Perl 語言編寫。
之后 Anatoly Vorobey 使用 C 重寫了 Memcached?,F(xiàn)在 Memcached 已經(jīng)被廣泛應(yīng)用于 YouTube、Reddit、Facebook 等網(wǎng)站。
說起 Memcached 的誕生,主要還是因?yàn)殛P(guān)系型數(shù)據(jù)庫在存儲性能上的瓶頸。因?yàn)檫M(jìn)入21世紀(jì),隨著個(gè)人電腦的普及,世界網(wǎng)民數(shù)量急劇攀升,網(wǎng)站的訪問量也隨之攀升。
因?yàn)殛P(guān)系型數(shù)據(jù)庫需要將數(shù)據(jù)持久化,所以會有一些寫硬盤IO的過程,因此在寫入數(shù)據(jù)上會有瓶頸。而為了解決硬盤IO速度慢的問題,Memcached 則是將所有數(shù)據(jù)存儲在了內(nèi)存中,從而能實(shí)現(xiàn)快速的數(shù)據(jù)寫入和讀取。
也是因?yàn)?Memcached 將數(shù)據(jù)存儲在內(nèi)存中,沒有實(shí)現(xiàn)持久化,所以當(dāng)出現(xiàn)一些意外情況,例如:斷電重啟、機(jī)器宕機(jī)等情況,Memcached 存儲的數(shù)據(jù)會全部丟失,我們只能重新從數(shù)據(jù)庫中讀取一次,再加載到 Memcached 中。
除此之外,Memcached只支持單一的 key-value 存儲,所以這里面存儲的數(shù)據(jù)類型單一,無法適應(yīng)多樣化的業(yè)務(wù)發(fā)展。
Redis 的誕生
正是因?yàn)橐陨蠁栴}的存儲,所以在2009年5月的時(shí)候Redis誕生了。Redis創(chuàng)建者看到了Memcached身上存在的許多問題,所以創(chuàng)建了Redis緩存框架。
在Redis緩存框架中,它支持多達(dá) 6 種類型的數(shù)據(jù)存儲,并且提供了多個(gè)原子命令操作。并且Redis還支持了將數(shù)據(jù)持久化到本地文件,這樣當(dāng)發(fā)生意外時(shí)就不需要再從數(shù)據(jù)庫讀取一遍數(shù)據(jù)了,直接讀取本地文件恢復(fù)即可。
到底哪一個(gè)好?
從兩個(gè)緩存框架的發(fā)展歷程來看,我們可以知道Redis是Memcached的升級版本,Memcached具有的功能Redis基本上都具備了。
所以很多時(shí)候我們都是使用Redis作為首選的緩存框架,當(dāng)然了Memcached也有一些比Redis好一些的性能,比如在存儲完全靜態(tài)的小量 key-value 數(shù)據(jù)時(shí),Memcached會比Redis快一些。
但只要數(shù)據(jù)量稍微大一點(diǎn),或者數(shù)據(jù)是動態(tài)的,那么Memcached的性能就會直線下降。
所以即使Memcached在某些方面有細(xì)微的優(yōu)勢,但總體上Redis還是優(yōu)于Redis這個(gè)緩存框架的。
以上就是memcached與redis哪個(gè)好的詳細(xì)內(nèi)容,更多請關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!