Memcached是什么?Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應用以減輕數(shù)據(jù)庫負載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提供動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。但是它并不提供冗余(例如,復制其hashmap條目);當某個服務器S停止運行或崩潰了,所有存放在S上的鍵/值對都將丟失。
Memcached由Danga Interactive開發(fā),其最新版本發(fā)布于2010年,作者為Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal.com訪問速度的。LJ每秒動態(tài)頁面訪問量幾千次,用戶700萬。Memcached將數(shù)據(jù)庫負載大幅度降低,更好的分配資源,更快速訪問。
Memcached適合什么場合
Memcached在很多時候都是作為數(shù)據(jù)庫前端cache使用的。因為它比數(shù)據(jù)庫少了很多SQL解析、磁盤操作等開銷,而且它是使用內(nèi)存來管理數(shù)據(jù)的, 所以它可以提供比直接讀取數(shù)據(jù)庫更好的性能,在大型系統(tǒng)中,訪問同樣的數(shù)據(jù)是很頻繁的,memcached可以大大降低數(shù)據(jù)庫壓力,使系統(tǒng)執(zhí)行效率提升。 另外,memcached也經(jīng)常作為服務器之間數(shù)據(jù)共享的存儲媒介,例如在SSO系統(tǒng)中保存系統(tǒng)單點登陸狀態(tài)的數(shù)據(jù)就可以保存在memcached中,被 多個應用共享。
需要注意的是,memcached使用內(nèi)存管理數(shù)據(jù),所以它是易失的,當服務器重啟,或者memcached進程中止,數(shù)據(jù)便會丟失,所以 memcached不能用來持久保存數(shù)據(jù)。很多人的錯誤理解,memcached的性能非常好,好到了內(nèi)存和硬盤的對比程度,其實memcached使用 內(nèi)存并不會得到成百上千的讀寫速度提高,它的實際瓶頸在于網(wǎng)絡連接,它和使用磁盤的數(shù)據(jù)庫系統(tǒng)相比,好處在于它本身非常“輕”,因為沒有過多的開銷和直接 的讀寫方式,它可以輕松應付非常大的數(shù)據(jù)交換量,所以經(jīng)常會出現(xiàn)兩條千兆網(wǎng)絡帶寬都滿負荷了,memcached進程本身并不占用多少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’ 啟動。NOTE: 以后memcached將作為windows的一個服務每次開機時自動啟動。這樣服務器端已經(jīng)安裝完畢了。
memcached的基本設置:
-p 監(jiān)聽的端口
-l 連接的IP地址, 默認是本機
-d start 啟動memcached服務
-d restart 重起memcached服務
-d stop|shutdown 關閉正在運行的memcached服務
-d install 安裝memcached服務
-d uninstall 卸載memcached服務
-u 以的身份運行 (僅在以root運行的時候有效)
-m 最大內(nèi)存使用,單位MB。默認64MB
-M 內(nèi)存耗盡時返回錯誤,而不是刪除項
-c 最大同時連接數(shù),默認是1024
-f 塊大小增長因子,默認是1.25
-n 最小分配空間,key+value+flags默認是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 — 打開一個到Memcache的連接
Memcache::pconnect — 打開一個到Memcache的長連接
Memcache::close — 關閉一個Memcache的連接
Memcache::set — 保存數(shù)據(jù)到Memcache服務器上
Memcache::get — 提取一個保存在Memcache服務器上的數(shù)據(jù)
Memcache::replace — 替換一個已經(jīng)存在Memcache服務器上的項目(功能類似Memcache::set)
Memcache::delete — 從Memcache服務器上刪除一個保存的項目
Memcache::flush — 刷新所有Memcache服務器上保存的項目(類似于刪除所有的保存的項目)
Memcache::getStats — 獲取當前Memcache服務器運行的狀態(tài)
posted on 2011-06-29 17:20
漂漂 閱讀(1775)
評論(0) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)庫