Redis和Memcache的使用場景和區(qū)別

使用場景:

一祭刚、如果需要緩存的數(shù)據(jù)只是key-value 這樣簡單的結(jié)構(gòu)時牌捷,采用Memcache,足夠穩(wěn)定可靠袁梗。如果有持久化需求宜鸯、存儲、排序等一系列復(fù)制操作時遮怜,或者對數(shù)據(jù)結(jié)構(gòu)和處理有高級要求的應(yīng)用淋袖,選擇Redis。

二锯梁、memcache使用場景:

1即碗、在動態(tài)系統(tǒng)中減少數(shù)據(jù)庫負載,提升性能陌凳,做緩存剥懒,適合多讀少寫,大數(shù)據(jù)量的情況(如人人網(wǎng)大量查詢用戶信息合敦、好友信息初橘、文章信息等)。它的一個總原則是將經(jīng)常需要從數(shù)據(jù)庫讀取的數(shù)據(jù)緩存在memcached中充岛,這些數(shù)據(jù)也分為幾類:

(1)經(jīng)常被讀取并且實時性要求不強可以等到自動過期的數(shù)據(jù)保檐。例如網(wǎng)站首頁最新文章列表、某某排行等數(shù)據(jù)崔梗。也就是雖然新數(shù)據(jù)產(chǎn)生了夜只,但對用戶體驗不會產(chǎn)生任何影響的場景。這類數(shù)據(jù)就使用典型的緩存策略蒜魄,設(shè)置一過合理的過期時間扔亥,當數(shù)據(jù)過期以后再從數(shù)據(jù)庫中讀取场躯。當然你得制定一個緩存清除策略,便于編輯或者其它人員能馬上看到效果旅挤。

(2)經(jīng)常被讀取并且實時性要求強的數(shù)據(jù)踢关。比如用戶的好友列表,用戶文章列表谦铃,用戶閱讀記錄等耘成。這類數(shù)據(jù)首先被載入到memcached中,當發(fā)生更改(添加驹闰、修改、刪除)時就清除緩存撒会。在緩存的時候嘹朗,我將查詢的SQL語句md5()得到它的 hash值作為key,結(jié)果數(shù)組作為值寫入memcached,并且將該SQL涉及的table_name以及hash值配對存入memcached中诵肛。 當更改了這個表時屹培,我就將與此表相配對的key的緩存全部刪除。

2怔檩、秒殺功能:一個人下單褪秀,要牽涉數(shù)據(jù)庫讀取,寫入訂單薛训,更改庫存媒吗,及事務(wù)要求, 對于傳統(tǒng)型數(shù)據(jù)庫來說乙埃,壓力是巨大的闸英。

可以利用 memcached 的 incr/decr 功能, 在內(nèi)存存儲 count 庫存量介袜, 秒殺 1000 臺每人搶單主要在內(nèi)存操作甫何,速度非常快遇伞,搶到 count < =1000 的號人辙喂,得一個訂單號,這時再去另一個頁面慢慢支付鸠珠。

三巍耗、不適用memcached的業(yè)務(wù)場景:

? ? ? ? ? 1、緩存對象的大小大于1MB跳芳;

? ? ? ? ? 2芍锦、key的長度大于250字符(所以我們把一些key先md5再存儲);

? ? ? ? ? 3飞盆、應(yīng)用運行在不安全的環(huán)境中Memcached為提供任何安全策略娄琉,僅僅通過telnet就可以訪問到memcached次乓。如果應(yīng)用運行在共享的系統(tǒng)上,需要著重考慮安全問題孽水;

? ? ? ? ? 4票腰、業(yè)務(wù)本身需要的是持久化數(shù)據(jù)。

四女气、Redis場景:適用于對讀寫效率要求都很高杏慰,數(shù)據(jù)處理業(yè)務(wù)復(fù)雜和對安全性要求較高的系統(tǒng)(如新浪微博的計數(shù)和微博發(fā)布部分系統(tǒng),對數(shù)據(jù)安全性炼鞠、讀寫要求都很高)缘滥、Pub/Sub構(gòu)建實時消息系統(tǒng)、統(tǒng)計谒主。

區(qū)別:

? ? ? ? ? 1朝扼、存儲方式:Memcache把數(shù)據(jù)全部存在內(nèi)存之中,斷電后會掛掉霎肯,數(shù)據(jù)不能超 過內(nèi)存大小擎颖。Redis支持數(shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中观游,重啟時可以再次加載進行使用搂捧。(RDB快照和AOF日志兩 種持久化方式)。

? ? ? ? ? 2懂缕、Redis支持數(shù)據(jù)的備份允跑,及master-slave模式的數(shù)據(jù)備份。

? ? ? ? ? 3提佣、數(shù)據(jù)支持類型:Redis在數(shù)據(jù)支持上要比Memcache多得多吮蛹。

? ? ? ? ? 4、使用底層模型不同:新版本的Redis直接自己構(gòu)建了VM機制拌屏,因為一般的系統(tǒng)調(diào)用系統(tǒng)函數(shù)的話潮针,會浪費一定的時間去移動和請求。

? ? ? ? ? 5倚喂、 redis有一個致命缺陷 當內(nèi)存滿了時 dump數(shù)據(jù)cpu占用100%每篷。

總結(jié):

? ? ? ? ? 1、Redis使用最佳方式是全部數(shù)據(jù)in-memory端圈。

? ? ? ? ? 2焦读、Redis更多場景是作為Memcache的替代者來使用。

? ? ? ? ? 3舱权、當需要除key/value之外的更多數(shù)據(jù)類型支持時矗晃,使用Redis更合適。

? ? ? ? ? 4宴倍、當存儲的數(shù)據(jù)不能被剔除時张症,使用Redis更合適仓技。

? ? ? ? ? 5、如果要說內(nèi)存使用效率俗他,使用簡單的key-value存儲的話脖捻,Memcached的內(nèi)存利用率更高,而如果Redis采用hash結(jié)構(gòu)來做key-value存儲兆衅,由于其組合式的壓縮地沮,其內(nèi)存利用率會高于Memcached。當然羡亩,這和你的應(yīng)用場景和數(shù)據(jù)特性有關(guān)摩疑。

Memcache應(yīng)用場景介紹,說明[zz]:

http://www.cnblogs.com/literoad/archive/2012/12/23/2830178.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夕春,一起剝皮案震驚了整個濱河市未荒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌及志,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寨腔,死亡現(xiàn)場離奇詭異速侈,居然都是意外死亡,警方通過查閱死者的電腦和手機迫卢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門倚搬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乾蛤,你說我怎么就攤上這事每界。” “怎么了家卖?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵眨层,是天一觀的道長。 經(jīng)常有香客問我上荡,道長趴樱,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任酪捡,我火速辦了婚禮叁征,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逛薇。我一直安慰自己捺疼,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布永罚。 她就那樣靜靜地躺著啤呼,像睡著了一般卧秘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媳友,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天斯议,我揣著相機與錄音,去河邊找鬼醇锚。 笑死哼御,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的焊唬。 我是一名探鬼主播恋昼,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赶促!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸥滨,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤嗦哆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后婿滓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體老速,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年凸主,在試婚紗的時候發(fā)現(xiàn)自己被綠了橘券。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡卿吐,死狀恐怖旁舰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗡官,我是刑警寧澤箭窜,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站谨湘,受9級特大地震影響绽快,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜紧阔,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一坊罢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擅耽,春花似錦活孩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽询兴。三九已至,卻和暖如春起趾,著一層夾襖步出監(jiān)牢的瞬間诗舰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工训裆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眶根,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓边琉,卻偏偏與公主長得像属百,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子变姨,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載地址:http://gnucto.blog.51cto.com/3391516/998509 Redis與Me...
    Ddaidai閱讀 21,445評論 0 82
  • 1族扰、memcache的概念? Memcache是一個高性能的分布式的內(nèi)存對象緩存系統(tǒng)定欧,通過在內(nèi)存里維護一個統(tǒng)一的巨...
    桖辶殤閱讀 2,230評論 2 12
  • 分布式緩存技術(shù)PK:選擇Redis還是Memcached砍鸠? 經(jīng)平臺同意授權(quán)轉(zhuǎn)載 作者:田京昆(騰訊后臺研發(fā)工程師)...
    meng_philip123閱讀 68,920評論 7 60
  • 簡介 memcached和redis都屬于內(nèi)存(memory)鍵-值(key-value)數(shù)據(jù)庫厘肮,在設(shè)計和思想上有...
    安靜1337閱讀 83,623評論 5 56
  • 親,今天你喝牛奶了嗎睦番?記得小學(xué)時候?qū)W校班級里面都會統(tǒng)一訂牛奶,我們稱之為“校奶”耍属,據(jù)說是為了響應(yīng)國家增強小學(xué)生身體...
    你是風(fēng)兒我是沙閱讀 1,133評論 0 3