windows下Memcached的安装与使用

时间:2021-05-30 20:40:18

一直说要总结一下这纠结的几天,但一直忙,明显这是借口。。好吧,就现在来吧。


一、需要文件(我整理的工具下载链接

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)貌似两个都不能用,可以用的我放在这里了我整理的工具下载链接

ps:

TS:Thread Safe  线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源
NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

详见php ts nts v6 v9的区别


二、操作步骤

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();


windows下Memcached的安装与使用

有这个显示则为成功。


测试用例写个实用点的,“散弹枪编程”看到的例子都是很“例子”,没有看到缓存的作用。


<?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