一直说要总结一下这纠结的几天,但一直忙,明显这是借口。。好吧,就现在来吧。
一、需要文件(我整理的工具下载链接)
1、Memcached主程序安装文件;
2、PHP扩展文件;
如果你从http://downloads.php.net/pierre/ 下载的话,5.3.x以上的版本(我的是5.3.8,其他的版本没试过)可用php_memcache-2.2.6-5.3-vc9-x86.zip,解压出来是81K。
5.2.x(wamp下的5.2.9-2)貌似两个都不能用,可以用的我放在这里了我整理的工具下载链接。
TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查
二、操作步骤
1、将Memcached 1.2.5.zip解压缩到C:\memcached目录下(目录自行定义)。
2.Ctrl+R,输入cmd,打开命令行窗口,键入
C:\memcached\memcached.exe -d install
C:\memcached\memcached.exe -d start
如果你要卸载,执行下面的命令:
memcached.exe -d stop
memcached.exe -d uninstall
三、安装成功与测试
查看phpinfo();
有这个显示则为成功。
测试用例写个实用点的,“散弹枪编程”看到的例子都是很“例子”,没有看到缓存的作用。
<?php
$mem = new Memcache;
$mem -> connect('localhost', 11211);
$tt = $mem -> get('key');
if (!$tt) {
$tt = time();
$mem -> set('key', $tt, 0, 5); //5秒钟之后显示新的时间
}
echo $tt;
?>
四、查看命中
1、memcache的运行状态可以方便的用stats命令显示。首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
PS:@win7,如果看到[提示错误:'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件。],解决方法是依次打开“开始”→“控制面板”→“打开或关闭Windows功能”,在打开的窗口处,寻找并勾选“Telnet客户端”,然后点击“确定”。顺利安装后,再在运行下输入此命令就OK了。windows7带有telnet,只是默认没有安装而已。
2、输入stats命令查看基本信息。stats这些状态的说明如下:
pid:memcache服务器的进程ID
uptime:服务器已经运行的秒数
time:服务器当前的unix时间戳
version:memcache版本
pointer_size:当前操作系统的指针大小(32位系统一般是32bit)
rusage_user:进程的累计用户时间
rusage_system:进程的累计系统时间
curr_items:服务器当前存储的items数量
total_items:从服务器启动以后存储的items总数量
bytes:当前服务器存储items占用的字节数
curr_connections:当前打开着的连接数
total_connections:从服务器启动以后曾经打开过的连接数
connection_structures:服务器分配的连接构造数
cmd_get:get命令(获取)总请求次数
cmd_set:set命令(保存)总请求次数
get_hits:总命中次数
get_misses:总未命中次数
evictions:为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read:总读取字节数(请求字节数)
bytes_written:总发送字节数(结果字节数)
limit_maxbytes:分配给memcache的内存大小(字节)
threads:当前线程数
@缓存命中率 = get_hits/cmd_get * 100%
@get_misses的数字加上get_hits应该等于cmd_get
@total_items == cmd_set == get_misses,当可用最大内存用光时,memcached就会删掉一些内容,等式就会不成立
memcached/scripts/memcached-tool
[root@localhost scripts]# ./memcached-tool localhost:11211
# Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
1 80B 1065s 1 1 no 0 0 0
memcache的运行状态可以 方便的用stats命令显示。
首先用telnet 127.0.0.1 11211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说 明如下:
pidmemcache服务器的进程IDuptime服 务器已经运行的秒数time服务器当前的unix时间戳versionmemcache 版本pointer_size当前操作系统的指针大小(32位系统一般是32bit)rusage_user进 程的累计用户时间rusage_system进程的累计系统时间curr_items服 务器当前存储的items数量total_items从服务器启动以后存储的items总数量bytes当 前服务器存储items占用的字节数curr_connections当前打开着的连接数total_connections从 服务器启动以后曾经打开过的连接数connection_structures服务器分配的连接 构造数cmd_getget命令(获取)总请求次数cmd_setset 命令(保存)总请求次数get_hits总命中次数get_misses总 未命中次数evictions为获取空闲内存而删除的items数(分配给memcache的空 间用满后需要删除旧的items来得到空间分配给新的items)bytes_read总读取字 节数(请求字节数)bytes_written总发送字节数(结果字节数)limit_maxbytes分 配给memcache的内存大小(字节)
threads当前线程数
结束进程
ps ef|grep mem*
kill -9 id
/usr/local/bin/memcached -d -m 512 -u www -l 192.168.200.13 -p 11211 -c 10000
参考链接:
beitmemcached - A memcached client in C# 2.0:http://code.google.com/p/beitmemcached/
memcache/memcached/memcachedb 配置、安装:http://www.cnblogs.com/zengen/archive/2010/12/07/1874031.html
在window系统下安装memcache内在缓存的实例:http://www.cnblogs.com/czh-liyu/archive/2011/10/08/2201831.html
memcache 缓存命中率 查看:http://hi.baidu.com/mashuai9788/item/b9bbcddd0102f640dcf9beca