
【軟件介紹】
Memcached是一款開源式的分布式緩存系統(tǒng),Memcached 1.4.20為最新版本,適用于windows 64位和32位操作系統(tǒng)。Memcached 是性能的數(shù)據(jù)存儲(chǔ)緩存工具,對(duì)于數(shù)據(jù)庫龐大的服務(wù)器來說,使用Memcached 有效地減輕服務(wù)器的負(fù)擔(dān),提高服務(wù)的運(yùn)行性能。memcached是一套分布式的快取系統(tǒng),當(dāng)初是Danga Interactive為了LiveJournal所發(fā)展的,但目前被許多軟件(如MediaWiki)所使用。這是一套開放源代碼軟件,以BSD license授權(quán)釋出。
memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 為首開發(fā)的一款軟件?,F(xiàn)在已成為mixi、hatena、Facebook、Vox、LiveJournal等眾多服務(wù)中提高Web應(yīng)用擴(kuò)展性的重要因 素。許多Web應(yīng)用都將數(shù)據(jù)保存到RDBMS中,應(yīng)用服務(wù)器從中讀取數(shù)據(jù)并在瀏覽器中顯示。但隨著數(shù)據(jù)量的增大、訪問的集中,就會(huì)出現(xiàn)RDBMS的負(fù)擔(dān)加 重、數(shù)據(jù)庫響應(yīng)惡化、網(wǎng)站顯示延遲等重大影響。
這時(shí)就該memcached大顯身手了。memcached是高性能的分布式內(nèi)存緩存服務(wù)器。一般的使用目的是,通過緩存數(shù)據(jù)庫查詢結(jié)果,減少數(shù)據(jù)庫訪問次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。
Memcached 的守護(hù)進(jìn)程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護(hù)進(jìn)程通信。但是它并不提供冗余(例如,復(fù)制其hashmap條目);當(dāng)某個(gè)服務(wù)器S停止運(yùn)行或崩潰了,所有存放在S上的鍵/值對(duì)都將丟失。

【軟件特色】
1、事件處理libevent是個(gè)程序庫,它將Linux的epoll、BSD類系統(tǒng)的kqueue等事件處理功能封裝成統(tǒng)一的接口。即使對(duì)服務(wù)器的連接數(shù)增加,也能發(fā)揮O《1》的性能。memcached使用這個(gè)libevent庫,因此能在Linux、BSD、Solaris等系統(tǒng)上發(fā)揮其高性能。對(duì)于事件處理這里就不再仔細(xì)介紹,可以參考Dan Kegel的The C10K Problem。
2、存儲(chǔ)方式
為了提升性能,memcached中保存的數(shù)據(jù)都存儲(chǔ)在memcached內(nèi)置的內(nèi)存存儲(chǔ)空間中。由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟memcached、重啟系統(tǒng)會(huì)導(dǎo)致全部數(shù)據(jù)消失。此外,內(nèi)容容量達(dá)到指定值之后,就基于LRU《Least Recently Used》算法自動(dòng)刪除不使用的緩存。memcached本身是為緩存而設(shè)計(jì)的服務(wù)器,因此并沒有過多考慮數(shù)據(jù)的永久性問題。
3、協(xié)議
memcached的服務(wù)器客戶端通信并不使用復(fù)雜的XML等格式,而使用簡(jiǎn)單的基于文本行的協(xié)議。
因此,使用telnet也能在memcached上保存數(shù)據(jù)、取得數(shù)據(jù)。下是例子。
$ telnet localhost 11211
Trying 127.0.0.1
Connected to localhost.localdomain 《127.0.0.1》。
Escape character is '^]'.
set foo 0 0 3 《保存命令》
bar 《數(shù)據(jù)》
STORED 《結(jié)果》
get foo 《取得命令》
VALUE foo 0 3 《數(shù)據(jù)》
bar 《數(shù)據(jù)》
4、通信分布式
memcached雖然是“分布式”緩存服務(wù)器,但服務(wù)器端并沒有分布式功能。各個(gè)memcached不能互相通信以共享信息。那么這個(gè)時(shí)候,怎樣進(jìn)行分布式呢?這完全取決于客戶端的實(shí)現(xiàn)。本文也將介紹memcached的分布式。
memcached適應(yīng)于64位系統(tǒng),軟件體積小巧,簡(jiǎn)單實(shí)用,歡迎有需要的小伙伴們下載使用。

【軟件功能】
一個(gè)用PHP編寫的可視化的MemCached管理系統(tǒng)MemAdmin是一款可視化的Memcached管理與監(jiān)控工具,使用PHP開發(fā),體積小,操作簡(jiǎn)單。
主要功能:
服務(wù)器參數(shù)監(jiān)控:STATS、SETTINGS、ITEMS、SLABS、SIZES實(shí)時(shí)刷新
服務(wù)器性能監(jiān)控:GET、DELETE、INCR、DECR、CAS等常用操作命中率實(shí)時(shí)監(jiān)控
支持?jǐn)?shù)據(jù)遍歷,方便對(duì)存儲(chǔ)內(nèi)容進(jìn)行監(jiān)視
支持條件查詢,篩選出滿足條件的KEY或VALUE
數(shù)組、JSON等序列化字符反序列顯示
兼容memcache協(xié)議的其他服務(wù),如Tokyo Tyrant (遍歷功能除外)
支持服務(wù)器連接池,多服務(wù)器管理切換方便簡(jiǎn)潔
【使用教程】
安裝教程命令提示符下運(yùn)行
安裝:
memcached -d install
memcached -d start
net start "Memcached Server"
卸載:
memcached -d stop
memcached -d remove
sc delete "Memcached Server"
memcached的基本設(shè)置:
p 監(jiān)聽的端口
l 連接的IP地址, 默認(rèn)是本機(jī)
d start 啟動(dòng)memcached服務(wù)
d restart 重起memcached服務(wù)
d stop|shutdown 關(guān)閉正在運(yùn)行的memcached服務(wù)
d install 安裝memcached服務(wù)
d uninstall 卸載memcached服務(wù)
u 以的身份運(yùn)行 (僅在以root運(yùn)行的時(shí)候有效)
m 最大內(nèi)存使用,單位MB。默認(rèn)64MB
M 內(nèi)存耗盡時(shí)返回錯(cuò)誤,而不是刪除項(xiàng)
c 最大同時(shí)連接數(shù),默認(rèn)是1024
f 塊大小增長(zhǎng)因子,默認(rèn)是1.25
n 最小分配空間,key+value+flags默認(rèn)是48
h 顯示幫助

【使用技巧】
許多語言都實(shí)現(xiàn)了連接memcached的客戶端,其中以Perl、PHP為主。僅僅memcached網(wǎng)站上列出的語言就有Perl
PHP
Python
Ruby
C#
C/C++
Lua
等等。
如何使用memcached-Server端
在服務(wù)端運(yùn)行:
# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211
這將會(huì)啟動(dòng)一個(gè)占用2G內(nèi)存的進(jìn)程,并打開11211端口用于接收請(qǐng)求。由于32位系統(tǒng)只能處理4G內(nèi)存的尋址,所以在大于4G內(nèi)存使用PAE的32位服務(wù)器上可以運(yùn)行2-3個(gè)進(jìn)程,并在不同端口進(jìn)行監(jiān)聽。
如何使用memcached-Client端
在應(yīng)用端包含一個(gè)用于描述Client的Class后,就可以直接使用,非常簡(jiǎn)單。
PHP Example:
$options["servers"] = array("192.168.1.41:11211", "192.168.1.42:11212");
$options["debug"] = false;
$memc = new MemCachedClient($options);
$myarr = array("one","two", 3);
$memc->set("key_one", $myarr);
$val = $memc->get("key_one");
print $val[0]."\n"; // prints 'one‘
print $val[1]."\n"; // prints 'two‘
print $val[2]."\n"; // prints 3
CentOS 下的安裝
安裝
yum -y install memcached
設(shè)置為開機(jī)啟動(dòng)
chkconfig --level 2345 memcached on
啟動(dòng)和停止
/etc/init.d/memcached start|stop
補(bǔ)充:如果安裝缺少其他支持,可以:
yum groupinstall "Development Tools"


































