详见: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
二、查看系统的运行状态:
[[email protected] 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
[[email protected] html]# vim memcached-tool
[[email protected] html]# chmod +x memcached-tool
[[email protected] 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 就可以了。