日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > 為何Redis要比Memcached好用

為何Redis要比Memcached好用

來源:程序員人生   發(fā)布時(shí)間:2014-11-19 09:05:50 閱讀次數(shù):3935次

GitHub版本地址: https://github.com/cncounter/translation/blob/master/tiemao_2014/Redis_beats_Memcached/Redis_beats_Memcached.md

副標(biāo)題: Redis是新興的通用存儲(chǔ)系統(tǒng),而Memcached仍有其適用領(lǐng)域

Memcached還是Redis? 在現(xiàn)代高性能Web利用中這1直是個(gè)爭(zhēng)辯不休的話題。 在基于關(guān)系型http://www.jyygyx.com/db/的Web利用需要提高性能時(shí),使用緩存是絕大多數(shù)架構(gòu)師的第1選擇,自然,Memcached和Redis通常是優(yōu)先選擇。

共同特點(diǎn)

  • 都是 key-value 情勢(shì)的內(nèi)存http://www.jyygyx.com/db/
  • 都是NoSQL家族的數(shù)據(jù)管理解決方案
  • 都基于一樣的key-value 數(shù)據(jù)模型
  • 所有數(shù)據(jù)全部放在內(nèi)存中(這也是適用于緩存的緣由)
  • 性能得分不分伯仲,包括數(shù)據(jù)吞吐量和延遲等指標(biāo)
  • 都是成熟的、廣受開源項(xiàng)目歡迎的 key-value存儲(chǔ)系統(tǒng)

Memcached最初在2003年由 Brad Fitzpatrick 為 LiveJournal網(wǎng)站開發(fā)。然后又用C語言重寫了1遍(初版為Perl實(shí)現(xiàn)),并開放給公眾使用,從此成為現(xiàn)代Web系統(tǒng)開發(fā)的基石。 當(dāng)前Memcached的發(fā)展方向是改進(jìn)穩(wěn)定性和性能優(yōu)化,而不是添加新功能特性。

Redis于2009年由 Salvatore Sanfilippo 創(chuàng)建, 直到今天 Sanfilippo 仍然是Redis的唯1開發(fā)者和代碼保護(hù)者。 Redis也被稱為 "Memcached增強(qiáng)版(Memcached on steroids)", 這1點(diǎn)也不使人驚訝, 由于 Redis 有1部份就是在 Memcached 的經(jīng)驗(yàn)總結(jié)之上構(gòu)建的的。 Redis比Memcached具有更多的功能特性,這使得它更靈活,更強(qiáng)大也更復(fù)雜。

Memcached和Redis被眾多企業(yè)和大量生產(chǎn)系統(tǒng)所采取, 支持各種語言開發(fā)的客戶端,有豐富的SDK。 事實(shí)上, 在上點(diǎn)范圍的http://www.jyygyx.com/Internet/Web開發(fā)語言中,基本上沒有不支持Memcached或Redis的。

為何Memcached和Redis如此流行? 不但是其具有超高的性能,還由于相對(duì)來講他們都非常簡單。 對(duì)http://www.jyygyx.com來講上手使用Memcached或Redis相當(dāng)容易。 安裝和設(shè)置并集成到系統(tǒng)中可能只需要幾分鐘時(shí)間。 因此花費(fèi)1點(diǎn)點(diǎn)時(shí)間和精力就可以立刻大幅提升系統(tǒng)性能 ―― 通常是提升1個(gè)數(shù)量級(jí)。 1個(gè)簡潔的解決方案卻能取得巨大的性能收益: 這酸爽簡直超乎你的想象。

Memcached 適用處景

由于Redis是新興解決方案,提供了更多的功能特性,比起Memcached來講, Redis1般都是更好的選擇。 在兩個(gè)特定場(chǎng)景下Memcached多是更好的選擇。

第1種是很細(xì)碎的靜態(tài)數(shù)據(jù),如HTML代碼片斷。 Memcached的內(nèi)存管理不像Redis那末復(fù)雜,所以性能更高1些,緣由是Memcached 的元數(shù)據(jù)metadata更小,相對(duì)來講額外開消就很少。 Memcached唯1支持的數(shù)據(jù)類型是字符串 String,非常合適緩存只讀數(shù)據(jù),由于字符串不需要額外的處理。

第2個(gè)場(chǎng)景,是Memcached比Redis更容易水平擴(kuò)大。 緣由在于它的設(shè)計(jì)和和功能很簡單,Memcached更容易擴(kuò)大。 消息顯示, Redis在行將到來的3.0版(瀏覽CA版本發(fā)布筆記)將內(nèi)置可靠的集群支持[但1直在跳票]。

Redis 用武之地

除非受環(huán)境制約(如遺留系統(tǒng)),或業(yè)務(wù)符合上面的2種情況,否則你應(yīng)當(dāng)優(yōu)先選擇Redis。 使用Redis作為緩存,通過調(diào)優(yōu)緩存內(nèi)容,系統(tǒng)效力能取得極為提升。

很明顯Redis的優(yōu)勢(shì)在于緩存管理。 緩存通過某種數(shù)據(jù)回收機(jī)制(data eviction mechanism)在必要時(shí)將舊數(shù)據(jù)從內(nèi)存中刪除,為新數(shù)據(jù)騰出空間。 Memcached的數(shù)據(jù)回收機(jī)制使用LRU(Least Recently Used,最近最少使用)算法,同時(shí)優(yōu)先清除與新數(shù)據(jù)大小差不多的舊數(shù)據(jù)塊。 相比之下,Redis允許細(xì)粒度控制過期緩存,有6種不同的策略可供選擇。 Redis還采取了1些更復(fù)雜的內(nèi)存管理方法和回收策略。

Redis對(duì)緩存的對(duì)象提供更大的靈活性。 而Memcached限制 key 為250字節(jié),限制 value 為1 MB,且只能通過純文本String通訊. Redis的 key 和 value 大小限制都是512 MB,是2進(jìn)制安全的【即不丟數(shù)據(jù),與編碼無關(guān)】。 Redis提供6種數(shù)據(jù)類型,使緩存和管理緩存變得更加智能和方便,為利用程序開發(fā)者打開了1個(gè)無窮可能的世界。

相比將對(duì)象序列化后通過字符串存儲(chǔ), Redis 通過 Hash來存儲(chǔ)1個(gè)對(duì)象的字段和值,并可以通過單個(gè)key來管理它們。

看看用Memcached更新1個(gè)對(duì)象需要干甚么:

  1. 獲得全部字符串
  2. 反序列化為對(duì)象
  3. 修改其中的值
  4. 再次序列化該對(duì)象
  5. 在緩存中將全部字符串替換為新字符串

并且每次更新都要干這些破事。

而使用Redis Hash的方式, 可以大幅度下降資源消耗并提高性能。 Redis的其他數(shù)據(jù)類型,如List 或 Set,可用來實(shí)現(xiàn)更復(fù)雜的緩存管理模式。

Redis的另外一個(gè)重大優(yōu)點(diǎn)是其存儲(chǔ)的數(shù)據(jù)是不透明的,這意味著在http://www.jyygyx.com/server/端可以直接操縱這些數(shù)據(jù)。 160多個(gè)命令中的大部份都可以用來進(jìn)行數(shù)據(jù)操作, 所以通過服務(wù)端腳本調(diào)用進(jìn)行數(shù)據(jù)處理成為現(xiàn)實(shí)。 這些內(nèi)置命令和用戶腳本可讓你直接靈活地處理數(shù)據(jù)任務(wù),而無需通過網(wǎng)絡(luò)將數(shù)據(jù)傳輸給另外一個(gè)系統(tǒng)進(jìn)行處理。

Redis提供了可選/可調(diào)劑的數(shù)據(jù)持久化, 目的是為了在 崩潰/重啟后可以快速加載緩存。 雖然我們1般認(rèn)為緩存中的數(shù)據(jù)是不穩(wěn)定,瞬時(shí)的, 但在緩存系統(tǒng)中將數(shù)據(jù)持久化到磁盤還是很有價(jià)值的。 在重啟后立即加載預(yù)熱的方式耗時(shí)很短, 而且減輕了主http://www.jyygyx.com/db/系統(tǒng)的開消。

最后, Redis提供主從復(fù)制(replication)。 Replication 可用于實(shí)現(xiàn)高可用的cache系統(tǒng),允許某些http://www.jyygyx.com/server/宕機(jī)的情況下也能提供不中斷的服務(wù)。 假定要求在某臺(tái)緩存http://www.jyygyx.com/server/崩潰時(shí), 只有少部份用戶和程序在短時(shí)間內(nèi)受影響, 大多數(shù)情況下就需要有1個(gè)行之有效的解決方案,來保證緩存內(nèi)容和服務(wù)的可用性。

現(xiàn)今開源軟件1直在提供最好的實(shí)用技術(shù)方案。 需要使用緩存來提高利用系統(tǒng)性能時(shí),Redis和Memcached是最好的產(chǎn)品級(jí)解決方案。 但斟酌到其豐富的功能和先進(jìn)的設(shè)計(jì),絕大多數(shù)時(shí)候Redis都應(yīng)當(dāng)是你的第1選擇。

作者簡介: Itamar Haber (@itamarhaber) 是 Redis Labs的首席開發(fā)人員, 該企業(yè)為開發(fā)人員提供完全托管的Memcached和Redis云服務(wù)。 具有多年軟件產(chǎn)品研發(fā)經(jīng)驗(yàn),曾在 Xeround, Etagon, Amicada, and M.N.S Ltd.擔(dān)負(fù)管理和領(lǐng)導(dǎo)職位. Itamar 取得 Northwestern and Tel-Aviv Universitiesd 的Kellogg-Recanati工商管理碩士, 和 Science in Computer Science 學(xué)士。

相干瀏覽:

  • 用Memcached提升Java企業(yè)利用性能,Part 1:體系結(jié)構(gòu)和配置
  • 用Memcached提升Java企業(yè)利用性能,Part 2:基于http://www.jyygyx.com/db/的webApp
  • Cache之爭(zhēng): Azure和AWS升級(jí)緩存服務(wù)

原文鏈接: Why Redis beats Memcached for caching

原文日期: 2014⑴0⑴5

翻譯日期: 2014⑴0⑵3

翻譯人員: 鐵錨


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲a级黄色| 麻豆91精品91久久久的内涵 | 国产中文区4幕区2021 | 精品国产一区二区三区四区四 | 久久一级大片 | 美女wwwwwwwwww | 久久久国产精品x99av | 国产精品无码专区在线观看 | 国产精品亚洲第一 | 亚洲成人免费网站 | 538国产精品一区二区免费视频 | 在线国产福利 | 毛片免费观看网站 | 国产精品免费一区二区三区都可以 | 久久精品无码一区二区三区 | 免费a级毛片, | 成人久久久精品国产乱码一区二区 | 久久精品一 | 欧美日韩99 | aa级黄色毛片 | 五月激情综合 | 久久成人18免费网站 | 国产一区二区成人 | 欧美精品黑人猛交高潮 | 国产99精品视频 | 亚洲国产精品久久久久久久久久 | 中文字幕+乱码+中文字 | 国产精品久久久久久久久久久久久 | 亚洲一区欧美二区 | 久久久www成人免费精品 | 国产精品成人一区二区三区夜夜夜 | 中文字幕av日韩 | 在线精品一区 | 毛片一区 | 亚洲欧美日韩中文在线 | 国产一区福利 | 国产一区二区三区不卡在线观看 | 999久久精品| av网站免费 | 91红桃视频 | 久久国产精品电影 |