memcached命令

命令行查看Memcached運行狀態

很多時候需要監控服務器上的Memcached運行情況,比如緩存的查詢次數,命中率之類的。但找到的
那個memcached-tool是linux下用perl寫的,我也沒試過windows能不能用。後來發現個簡單的辦法
可以做到,就是使用Telnet。
首先登錄到服務器,然後在cmd命令行中鍵入
telnet 127.0.0.1 11211
其中127.0.0.1是服務器的地址(這裏是本機) ,11211是memcached綁定的端口號。
之後命令行窗口全黑只有光標提示,摸黑輸入stats,即可得到描述Memcached服務器運行情況的參
數。如下圖:
 
其中,uptime 是memcached運行的秒數,cmd_get是查詢緩存的次數。這兩個數據相除一下就能得到
平均每秒請求緩存的次數——最近niupu的流量很低,所以平均也就一秒請求一次多,這麼點大的壓
力,用文件系統緩存一樣沒問題,根本不會體現出使用memcached的優越。
下面的cmd_set 就是設置key=>value的次數。整個memcached是個大hash,用cmd_get沒有找到的內
容,就會調用一下cmd_set寫進緩存裏。緊跟着是get_hits,就是緩存命中的次數。緩存命中率 =
get_hits/cmd_get * 100%。
下面的get_misses的數字加上get_hits應該等於cmd_get。而total_itemscurr_items表示現在在緩
存中的鍵值對個數,在圖上total_items == cmd_set == get_misses,不過當可用最大內存用光時
,memcached就會刪掉一些內容,上面的等式就不成立了。
話說回來,memcached要是能有一套完整的監測工具就太好了。memcached的安裝和php相應配置請看
這裏。


Memcached的stats命令

 telnet到memcached服務器後有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete等賦值命令外,還有一系列的獲取服務器信息的命令,這部分命令都是以stats開頭的。
用PHP的Memcache::getStats($cmd)也可以訪問這些命令

常用的命令

stats
顯示服務器信息、統計數據等

stats reset
清空統計數據

stats malloc
顯示內存分配數據

stats cachedump slab_id limit_num
顯示某個slab中的前limit_num個key列表,顯示格式如下
ITEM key_name [ value_length b; expire_time|access_time s]
其中,memcached 1.2.2及以前版本顯示的是  訪問時間(timestamp)
1.2.4以上版本,包括1.2.4顯示 過期時間(timestamp)
如果是永不過期的key,expire_time會顯示爲服務器啓動的時間

stats cachedump 7 2
ITEM copy_test1 [250 b; 1207795754 s]
ITEM copy_test [248 b; 1207793649 s]

stats slabs
顯示各個slab的信息,包括chunk的大小、數目、使用情況等

stats items
顯示各個slab中item的數目和最老item的年齡(最後一次訪問距離現在的秒數)

stats detail [on|off|dump]
設置或者顯示詳細操作記錄


參數爲on,打開詳細操作記錄
參數爲off,關閉詳細操作記錄
參數爲dump,顯示詳細操作記錄(每一個鍵值get、set、hit、del的次數)

stats detail dump
PREFIX copy_test2 get 1 hit 1 set 0 del 0
PREFIX copy_test1 get 1 hit 1 set 0 del 0
PREFIX cpy get 1 hit 0 set 0 del 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章