分类: LINUX
2011-04-01 21:13:35
memcached Telnet Interface
This is a short summary of everything important that helps to inspect a running instance. How To Connect Use "ps -ef" to find out which IP and port was passed when memcached was started and use the same with telnet to connect to memcache. Example: telnet 10.10.1.24 23456
Supported Commands The supported commands (the official ones and some unofficial) are documented in the document. Sadly the syntax description isn't really clear and a simple help command listing the existing commands would be much better. Here is an overview of the commands you can find in the (as of 16.12.2008):
Traffic Statistics You can query the current traffic statistics using the command statsYou will get a listing which serves the number of connections, bytes in/out and much more.
Example Output: STAT pid 14868
Memory Statistics You can query the current memory statistics using stats slabs
Example Output: STAT 1:chunk_size 80
Which Keys Are Used? There seems to be no builtin function to determine the currently set keys. However you can use the stats itemscommand to determine how many keys do exist. stats itemsThis at least helps to see if any keys are used. To dump the key names from a PHP script that already does the memcache access you can use the PHP code from.
Never Set a Timeout > 30 Days! While this has nothing to do with the telnet access this is a problem you might run into. If you try to "set" or "add" a key with a timeout bigger than the allowed maximum you might not get what you expect because memcached then treats the value as a Unix timestamp. Also if the timestamp is in the past it will do nothing at all. Your command will silently fail. So if you want to use the maximum lifetime specify 2592000. Example: set my_key 0 2592000 1 Disappearing Keys on Overflow Despite the documentation saying something about wrapping around 64bit overflowing a value using "incr" causes the value to disappear. It needs to be created using "add"/"set" again.
|
elnet localhost 11211
//保存
set good 32 0 10
helloworld
STORED
//取回
gets good
VALUE good 32 10 10
helloworld
END
//替换
replace good 32 0 10
worldhello
STORED
get good
VALUE good 32 10
worldhello
END
//尾部添加
append good 32 0 5
after
STORED
get good
VALUE good 32 15
worldhelloafter
END
//头部添加
prepend good 32 0 6
before
STORED
get good
VALUE good 32 21
beforeworldhelloafter
END
//删除
delete good
DELETED
get good
END
delete good
NOT_FOUND
cas good 32 0 10 hel
helloworld
EXISTS
gets good
VALUE good 32 10 10
helloworld
END
cas bad 32 0 10 good
worldhello
NOT_FOUND
//统计
stats items
STAT items:1:number 1
STAT items:1:age 24
STAT items:1:evicted 0
STAT items:1:outofmemory 0
END
stats sizes
96 1
END
stats slabs
STAT 1:chunk_size 88
STAT 1:chunks_per_page 11915
STAT 1:total_pages 1
STAT 1:total_chunks 11915
STAT 1:used_chunks 11914
STAT 1:free_chunks 1
STAT 1:free_chunks_end 11913
STAT 2:chunk_size 112
STAT 2:chunks_per_page 9362
STAT 2:total_pages 1
STAT 2:total_chunks 9362
STAT 2:used_chunks 9361
STAT 2:free_chunks 1
STAT 2:free_chunks_end 9361
STAT 5:chunk_size 232
STAT 5:chunks_per_page 4519
STAT 5:total_pages 1
STAT 5:total_chunks 4519
STAT 5:used_chunks 4518
STAT 5:free_chunks 1
STAT 5:free_chunks_end 4518
STAT active_slabs 3
STAT total_malloced 3145472
END
stats items
STAT items:1:number 1
STAT items:1:age 1768
STAT items:1:evicted 0
STAT items:1:outofmemory 0
END
stats
STAT pid 18261
STAT uptime 528593
STAT time 1237277383
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.004999
STAT rusage_system 0.015997
STAT curr_items 1
STAT total_items 2
STAT bytes 66
STAT curr_connections 2
STAT total_connections 13
STAT connection_structures 3
STAT cmd_get 11
STAT cmd_set 8
STAT get_hits 2
STAT get_misses 9
STAT evictions 0
STAT bytes_read 1342
STAT bytes_written 8752
STAT limit_maxbytes 134217728
STAT threads 1
END
使用usr/bin/perl /root/memcached-1.2.6/scripts/memcached-tool localhost:11211
output
# Item_Size Max_age 1MB_pages Count Full?
1 88 B 1531 s 1 1 no
2 112 B 0 s 1 0 no
5 232 B 0 s 1 0 no
# slab class编号
Item_Size Chunk大小
Max_age LRU内最旧的记录的生存时间
1MB_pages 分配给Slab的页数
Count Slab内的记录数
Full? Slab内是否含有空闲chunk