首页 > 代码库 > memcached常用命令

memcached常用命令

详见: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 就可以了。

 

memcached常用命令