《WordPress 與 Redis & Memcached》要點(diǎn):
本文介紹了WordPress 與 Redis & Memcached,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:memcache擴(kuò)展 / 鍵值KeyValue存儲(chǔ)數(shù)據(jù)庫
Memcached 是一種開源的,高性能分布式內(nèi)存對(duì)象緩存系統(tǒng),本色上它是通用的,但最初的目的是通過減輕數(shù)據(jù)庫負(fù)載以加速動(dòng)態(tài)web應(yīng)用程序, 這也是它現(xiàn)今主要的用途.
Memcached 由 Brad Fitzpatrick為他的公司 Danga interactives 在 2003 年 5 月 22 日用 Perl 語言開發(fā)而成,當(dāng)時(shí)它僅服務(wù)于作者的交友網(wǎng)站 LiveJournal .此后, Memcached 被 Anatoly Vorobey (它當(dāng)時(shí)被那個(gè)交友網(wǎng)站雇用了,現(xiàn)在他在 Google ) 用C語言重新編寫后, 開源后, Memcached 逐步發(fā)展為現(xiàn)代 Web 應(yīng)用程序重要的緩存組件, Memcached 現(xiàn)在由 Redis Labs (它創(chuàng)建和維護(hù) Memcached )幫助.
出道比擬早的 Memcached 簡潔,高效,但其簡單的數(shù)據(jù)類型系統(tǒng)讓它在某些應(yīng)用場合下不那么合適.
Memcached 也采納 BSD 許可證.
Redis ( REmote DIctionary Server )是一個(gè)開源的內(nèi)存數(shù)據(jù)庫系統(tǒng),它支持?jǐn)?shù)據(jù)持久化(也便是你可以把它存在內(nèi)存中的數(shù)據(jù) dump 到硬盤上,以備下次載入 Redis 時(shí)使用), 它支持多種抽象的數(shù)據(jù)結(jié)構(gòu)(字符串、列表、映射、集合、有序集合、位圖,空間索引等).
Redis 它由來自意大利西西里島卡塔尼亞的 Salvatore Sanfilippo (花名 antirez )在 2009 年創(chuàng)建,至今 antirez 仍是該項(xiàng)目的首席開發(fā)者和唯一維護(hù)者.Redis 功能和數(shù)據(jù)布局比 Memcached 更加豐富,這讓它對(duì)數(shù)據(jù)的操作更加靈活, 但也使得它比 Memcached 更加復(fù)雜.
Redis 的性能與 Memcached 難分手足,某些情形下,甚至比 Memcached 更為高效.
Redis 也采納 BSD 許可證.
Couchbase是個(gè)NoSQL分布式的,支持SQL查詢的鍵值數(shù)據(jù)庫, 它在NoSQL和分布式這個(gè)范疇內(nèi)最大的競爭者是 MongoDB,它兼容 Memcached,阿里云的OCS ( ApsaraDB for Memcache )也兼容 Memcached 協(xié)議,Couchbase產(chǎn)品包括了CouchDB的一個(gè)副本, CouchDB 是一個(gè) Apache 基金會(huì)托管的開源項(xiàng)目.
Membase (使用SQLite作為嵌入式存儲(chǔ)引擎,在 Couchbase 中,使用的是 Apache CouchDB )于2010年10月發(fā)布,是由Zynga、NorthScale與NHN聯(lián)合開發(fā)的,NorthScale后來釀成了Membase Inc(現(xiàn)在 membase.com 這個(gè)域名已經(jīng)指向了 Couchbase.com).
2011年,CouchOne與Membase歸并了,成為了 Couchbase.
Couchbase 分三個(gè)版本:開源版,社區(qū)版和企業(yè)版, 開源版采納 Apache License 2.0 許可證, 社區(qū)版沒有聲明采納何種許可證,只是說可以用在生產(chǎn)系統(tǒng)中,付費(fèi)版,你懂的.
據(jù)他們本身說,讀寫性能優(yōu)于 Redis,只是它還在成長進(jìn)化中,并且關(guān)注者寥寥無幾,不適合用作生產(chǎn)環(huán)境.
都把緩存層的數(shù)據(jù)放在內(nèi)存中;
都存儲(chǔ)鍵值數(shù)據(jù);
都屬于 NoSQL 家族;
數(shù)據(jù)類型和數(shù)據(jù)管理
Redis 支持的數(shù)據(jù)類型比 MemcacheD 更豐碩:
redis data types
緩存采用一種叫做數(shù)據(jù)驅(qū)逐的機(jī)制來從內(nèi)存中刪除舊的數(shù)據(jù),以便為新數(shù)據(jù)騰出空間.MemcacheD 的數(shù)據(jù)驅(qū)逐機(jī)制使用了一個(gè)LRU( 最近使用的: Least Recently Used )算法,并在一定程度上任意地將大小與新數(shù)據(jù)類似的數(shù)據(jù)驅(qū)逐出去.相比之下,Redis則允許對(duì)驅(qū)逐政策進(jìn)行細(xì)粒度的控制,盡管選擇了六個(gè)不同的驅(qū)逐政策.Redis 還使用了更復(fù)雜的內(nèi)存管理和驅(qū)逐候選辦法.
流行度
Redis 最強(qiáng)年夜,最流行, Memcached 更小,功能更單調(diào), Couchbase 之類打醬油的鍵值存儲(chǔ)系統(tǒng),就先按下不表吧,見谷歌趨勢所示:
Redis vs Memcached vs couchbase in 谷歌 trading
讀寫機(jī)能
幾年以前, Memcached 的讀寫性能一般來說優(yōu)于 Redis, 如今, 它倆基本上旗鼓相當(dāng)了, 而且 Redis 的讀寫性能要稍微優(yōu)于 Memcached:
redis vs memcached
在實(shí)際測試中, 當(dāng) client 為 32 時(shí), Redis 性能會(huì)顯著降落.
也可使用這個(gè)腳本進(jìn)行對(duì)照測試:
https://github.com/suifengtec/redis-memcached/blob/master/test.php
我的測試成果如下:
Redis multi set: 0.089952945709229Memcached multi set: 1.9566721916199Redis multi get: 0.092521190643311Memcached multi get: 0.86802196502686
內(nèi)存占用
由于 Redis 可處理復(fù)雜的數(shù)據(jù)布局,所以它在實(shí)際應(yīng)用中,在內(nèi)存占用上要優(yōu)于 Memcached.
數(shù)據(jù)持久化
內(nèi)存緩存系統(tǒng)的數(shù)據(jù)持久化可以理解為間隔指定時(shí)間或發(fā)生不測時(shí),嘗試將內(nèi)存中緩存的數(shù)據(jù) dump 到硬盤上,以備不時(shí)之需.
Memcached (至少如今還)不支持?jǐn)?shù)據(jù)持久化, Redis 是可以支持?jǐn)?shù)據(jù)持久化的.
規(guī)模較年夜的應(yīng)用場景
在緩存的數(shù)據(jù)項(xiàng)均較小時(shí), Memcached 優(yōu)于 Redis, 如果緩存的數(shù)據(jù)項(xiàng)均較年夜時(shí), Redis 優(yōu)于 Memcached.
能用 Redis 的話,就不要用 Memcached 了, 真要用 Memcached, PHP 擴(kuò)大用 memcahced , 不要用 memcache .
本文首發(fā)今日頭條以及酷威普( coolwp.com ).
維易PHP培訓(xùn)學(xué)院每天發(fā)布《WordPress 與 Redis & Memcached》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/10665.html