Memcached是什么?Memcached 是一個(gè)高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動(dòng)態(tài)、數(shù)據(jù)庫驅(qū)動(dòng)網(wǎng)站的速度。Memcached基于一個(gè)存儲(chǔ)鍵/值對的hashmap。其守護(hù)進(jìn)程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護(hù)進(jìn)程通信。但是它并不提供冗余(例如,復(fù)制其hashmap條目);當(dāng)某個(gè)服務(wù)器S停止運(yùn)行或崩潰了,所有存放在S上的鍵/值對都將丟失。
Memcached由Danga Interactive開發(fā),其最新版本發(fā)布于2010年,作者為Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal.com訪問速度的。LJ每秒動(dòng)態(tài)頁面訪問量幾千次,用戶700萬。Memcached將數(shù)據(jù)庫負(fù)載大幅度降低,更好的分配資源,更快速訪問。
Memcached適合什么場合
Memcached在很多時(shí)候都是作為數(shù)據(jù)庫前端cache使用的。因?yàn)樗葦?shù)據(jù)庫少了很多SQL解析、磁盤操作等開銷,而且它是使用內(nèi)存來管理數(shù)據(jù)的, 所以它可以提供比直接讀取數(shù)據(jù)庫更好的性能,在大型系統(tǒng)中,訪問同樣的數(shù)據(jù)是很頻繁的,memcached可以大大降低數(shù)據(jù)庫壓力,使系統(tǒng)執(zhí)行效率提升。 另外,memcached也經(jīng)常作為服務(wù)器之間數(shù)據(jù)共享的存儲(chǔ)媒介,例如在SSO系統(tǒng)中保存系統(tǒng)單點(diǎn)登陸狀態(tài)的數(shù)據(jù)就可以保存在memcached中,被 多個(gè)應(yīng)用共享。
需要注意的是,memcached使用內(nèi)存管理數(shù)據(jù),所以它是易失的,當(dāng)服務(wù)器重啟,或者memcached進(jìn)程中止,數(shù)據(jù)便會(huì)丟失,所以 memcached不能用來持久保存數(shù)據(jù)。很多人的錯(cuò)誤理解,memcached的性能非常好,好到了內(nèi)存和硬盤的對比程度,其實(shí)memcached使用 內(nèi)存并不會(huì)得到成百上千的讀寫速度提高,它的實(shí)際瓶頸在于網(wǎng)絡(luò)連接,它和使用磁盤的數(shù)據(jù)庫系統(tǒng)相比,好處在于它本身非常“輕”,因?yàn)闆]有過多的開銷和直接 的讀寫方式,它可以輕松應(yīng)付非常大的數(shù)據(jù)交換量,所以經(jīng)常會(huì)出現(xiàn)兩條千兆網(wǎng)絡(luò)帶寬都滿負(fù)荷了,memcached進(jìn)程本身并不占用多少CPU資源的情況。
Memcached的使用(windows下使用)
1.到http://code.jellycan.com/memcached/下載最新版的Memcached
2. 在終端(也即cmd命令界面)下輸入 ‘c:\memcached\memcached.exe -d install’ 安裝
3. 再輸入: ‘c:\memcached\memcached.exe -d start’ 啟動(dòng)。NOTE: 以后memcached將作為windows的一個(gè)服務(wù)每次開機(jī)時(shí)自動(dòng)啟動(dòng)。這樣服務(wù)器端已經(jīng)安裝完畢了。
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 塊大小增長因子,默認(rèn)是1.25
-n 最小分配空間,key+value+flags默認(rèn)是48
-h 顯示幫助
客戶端使用:
memcache的各種客戶端如下:
http://code.google.com/p/memcached/wiki/Clients
windows下c++可以使用:
http://code.jellycan.com/memcacheclient/
可以簡單的操作添加,獲取,刪除,跟新鍵值等操作。
MemCache接口介紹
Memcache客戶端包含兩組接口,一組是面向過程的接口,一組是面向?qū)ο蟮慕涌冢唧w可以參考PHP手冊 “LXXV. Memcache Functions” 這章。
Memcache面向?qū)ο蟮某S媒涌诎ǎ?/span>
Memcache::connect — 打開一個(gè)到Memcache的連接
Memcache::pconnect — 打開一個(gè)到Memcache的長連接
Memcache::close — 關(guān)閉一個(gè)Memcache的連接
Memcache::set — 保存數(shù)據(jù)到Memcache服務(wù)器上
Memcache::get — 提取一個(gè)保存在Memcache服務(wù)器上的數(shù)據(jù)
Memcache::replace — 替換一個(gè)已經(jīng)存在Memcache服務(wù)器上的項(xiàng)目(功能類似Memcache::set)
Memcache::delete — 從Memcache服務(wù)器上刪除一個(gè)保存的項(xiàng)目
Memcache::flush — 刷新所有Memcache服務(wù)器上保存的項(xiàng)目(類似于刪除所有的保存的項(xiàng)目)
Memcache::getStats — 獲取當(dāng)前Memcache服務(wù)器運(yùn)行的狀態(tài)
posted on 2011-06-29 17:20
漂漂 閱讀(1793)
評論(0) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)庫