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