Memcached有個stats命令,通過它可以查看Memcached服務的許多狀態信息。使用方法如下: 先在命令行直接輸入telnet 主機名端口號,連接到memcached服務器,然后再連接成功后,輸入stats 命令,即可顯示當前memcached服務的狀態信息。 比如在我本機測試如下: stats STAT pid 1552 STAT uptime 3792 STAT time 1262517674 STAT version 1.2.6 STAT pointer_size 32 STAT curr_items 1 STAT total_items 2 STAT bytes 593 STAT curr_connections 2 STAT total_connections 28 STAT connection_structures 9 STAT cmd_get 3 STAT cmd_set 2 STAT get_hits 2 STAT get_misses 1 STAT evictions 0 STAT bytes_read 1284 STAT bytes_written 5362 STAT limit_maxbytes 67108864 STAT threads 1 END 這里顯示了很多狀態信息,下邊詳細解釋每個狀態項: 1. pid: memcached服務進程的進程ID 2. uptime: memcached服務從啟動到當前所經過的時間,單位是秒。 3. time: memcached服務器所在主機當前系統的時間,單位是秒。 4. version: memcached組件的版本。這里是我當前使用的1.2.6。 5. pointer_size:服務器所在主機操作系統的指針大小,一般為32或64. 6. curr_items:表示當前緩存中存放的所有緩存對象的數量。不包括目前已經從緩存中刪除的對象。 7. total_items:表示從memcached服務啟動到當前時間,系統存儲過的所有對象的數量,包括目前已經從緩存中刪除的對象。 8. bytes:表示系統存儲緩存對象所使用的存儲空間,單位為字節。 9. curr_connections:表示當前系統打開的連接數。 10. total_connections:表示從memcached服務啟動到當前時間,系統打開過的連接的總數。 11. connection_structures:表示從memcached服務啟動到當前時間,被服務器分配的連接結構的數量,這個解釋是協議文檔給的,具體什么意思,我目前還沒搞明白。 12. cmd_get:累積獲取數據的數量,這里是3,因為我測試過3次,第一次因為沒有序列化對象,所以獲取數據失敗,是null,后邊有2次是我用不同對象測試了2次。 13. cmd_set:累積保存數據的樹立數量,這里是2.雖然我存儲了3次,但是第一次因為沒有序列化,所以沒有保存到緩存,也就沒有記錄。 14. get_hits:表示獲取數據成功的次數。 15. get_misses:表示獲取數據失敗的次數。 16. evictions:為了給新的數據項目釋放空間,從緩存移除的緩存對象的數目。比如超過緩存大小時根據LRU算法移除的對象,以及過期的對象。 17. bytes_read:memcached服務器從網絡讀取的總的字節數。 18. bytes_written:memcached服務器發送到網絡的總的字節數。 19. limit_maxbytes:memcached服務緩存允許使用的最大字節數。這里為67108864字節,也就是是64M.與我們啟動memcached服務設置的大小一致。 20. threads:被請求的工作線程的總數量。這個解釋是協議文檔給的,具體什么意思,我目前還沒搞明白。 總結:stats命令總體來說很有用,通過這個命令我們很清楚當前memcached服務的各方面的信息。