詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt104
一、Memcache面向對象的常用接口包括:
Memcache::connect — 打開一個到Memcache的連接
Memcache::pconnect — 打開一個到Memcache的長連接
Memcache::close — 關閉一個Memcache的連接
Memcache::set — 保存數據到Memcache服務器上
Memcache::get — 提取一個保存在Memcache服務器上的數據
Memcache::replace — 替換一個已經存在Memcache服務器上的項目
Memcache::delete — 從Memcache服務器上刪除一個保存的項目
Memcache::flush — 刷新所有Memcache服務器上保存的項目(類似於刪除所有的保存的項目)
Memcache::getStats — 獲取當前Memcache服務器運行的狀態
For More: http://cn.php.net/memcache
二、查看系統的運行狀態:
[root@localhost softwear]# telnet 127.0.0.1 11211
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
stats 輸入stats,顯示服務器信息、統計數據等
STAT pid 8257 進程ID
STAT uptime 683101 服務器運行秒數
STAT time 1288179433 服務器當前unix時間戳
STAT version 1.2.6 memcached版本
STAT pointer_size 32 當前操作系統的指針大小(32位系統一般是32bit)
STAT rusage_user 7.269894 該進程累計用戶時間
STAT rusage_system 27.697789 該進程累計的系統時間
STAT curr_items 8311 服務器當前存儲的內容數量
STAT total_items 255141 服務器啟動以來存儲過的內容總數
STAT bytes 4875895 服務器當前存儲內容所占用的字節數
STAT curr_connections 12 當前打開連接數
STAT total_connections 131 服務器運行以來接受的連接總數
STAT connection_structures 13 服務器分配的連接結構數
STAT cmd_get 534959 執行get命令總數
STAT cmd_set 255507 執行set命令總數
STAT get_hits 279452 get命中次數
STAT get_misses 255507 get未命中次數
STAT evictions 0 為獲取空間刪除item的總數(分配給memcache的空間用滿后需要刪除舊的items來得到空間分配給新的items)
STAT bytes_read 217230173 服務器從網絡讀取到的總字節數
STAT bytes_written 246524464 服務器向網絡發送的總字節數
STAT limit_maxbytes 134217728 服務器在存儲時被允許使用的字節總數,分配的內存數(字節),這個是128M
STAT threads 1 當前線程數
END
其中,幾個重要的參數:
uptime:是memcached運行的秒數。
cmd_get:是查詢緩存的次數。
cmd_get/uptime 結果是平均每秒請求緩存的次數——結果值越大,說明Memcached的利用率越高,站點的訪問量大,如果太低,用文件系統緩存就可以了,根本不會體現出使用memcached的強大性能。
cmd_set:是設置key=>value的次數。整個memcached是個大hash,用cmd_get沒有找到的內容,就會調用一下cmd_set寫進緩存里。
get_hits:是緩存命中的次數。所謂的命中率 = get_hits/cmd_get * 100%。
get_misses:是緩存未命中的次數。get_misses加上get_hits就等於cmd_get。
stats:顯示服務器信息、統計數據等
stats reset:清空統計數據
stats slabs:顯示各個slab的信息,包括chunk的大小、數目、使用情況等
stats items:顯示各個slab中item的數目和存儲時長(最后一次訪問距離現在的秒數)
quit:退出
三、利用shell命令操作Memcached
1、查看Memcached當時狀態
printf “stats\r\n” | nc 127.0.0.1 11211
2、查看Memcached實時狀態
watch “printf ‘stats\r\n’ | nc 127.0.0.1 11211″
Memcached protocol 中英文檔可以參考:http://blog.s135.com/book/memcached/
四. 查看slabs的使用狀況
使用memcached的創造着Brad寫的名為 memcached-tool 的Perl腳本,可以方便地獲得slab的使用情況(它將memcached的返回值整理成容易閱讀的格式)。可以從下面的地址獲得腳本:
http://code.sixapart.com/svn/memcached/trunk/server/scripts/memcached-tool
[root@localhost html]# vim memcached-tool
[root@localhost html]# chmod +x memcached-tool
[root@localhost html]# ./memcached-tool 127.0.0.1:11211
# Item_Size Max_age 1MB_pages Count Full?
1 80 B 0 s 1 0 no
2 104 B 12175 s 1 1 no
3 176 B 1339587 s 33 196567 yes
各列的含義:
#: slab class編號
Item_Size: Chunk大小
Max_age: LRU內最舊的記錄的生存時間
1MB_pages: 分配給Slab的頁數
Count: Slab內的記錄數
Full?: Slab內是否含有空閑chunk
五. 也可以圖形化監控 Memcached 的運行狀態
http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/
是一個PHP源文件,只需要修改源碼中的用戶名、密碼以及數組$MEMCACHE_SERVERS 就可以了。