1 安装
Windows下的Memcache安装:
1、下载 memcache for windows。如下两个地址都可以下载:
下载之后解压到本地目录,本例中解压到这个目录
c:\memcached
2、在命令行状态下输入这个命令安装:
d:\memcached\memcached.exe -d install
至此memcached已经安装成windows服务。而且以后memcached将作为windows的一个服务每次开机时自动启动(可以通过 运行 > services.msc 看到 memcached 的启动类型为“自动”)。这样服务器端已经安装完毕了。
3、在命令行下输入:
c:\memcached\memcached.exe -d start
启动 memcached 服务,当然也可以选择在windows服务中启动,默认监听端口是 11211。你没看错,就是这么简单,简简单单的三步memcache的服务器端就准备完毕。
2 配置PHP
php安装Memcached模块支持
1、下载 php_memcache.dll 模块,下载地址:
如3.0.8,则点击其后的
DLL 图标,就进入这个页面下载:
注意,要根据自己的PHP版本和字节位数(不是系统位数)选择扩展包,否则会无法使用。
2、修改php.ini,添加如下内容:
extension=php_memcache.dll
3、重启apache服务器,然后查看一下phpinfo,如果有 memcache,那么就说明安装成功!
3 测试Memcached
1、简单测试代码如下:
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
$mem->set('key', 'Hello Memcached!', 0, 60);
$val = $mem->get('key');
echo $val;
?>
2、对象存储测试代码
在该例程中,会用cache保存一个对象,然后读取。对象和其他非标量类型在保存之前会被序列化,所以在cache中是无法存储资源的(如连接标识符等)。
// 新建连接
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
// 打印版本号
$version = $memcache->getVersion();
echo "Server's version: ".$version."
n";
// 新建对象
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
// 保存对象
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)
n";
// 获取对象
$get_result = $memcache->get('key');
echo "Data from the cache:
n";
var_dump($get_result);
?>
3、使用memcache会话处理
$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://$host:$port";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);
?>
4 参数
Memcache 命令的参数选项有:
-p 监听的端口,默认是11211
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认 64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
如果要修改启动的端口和内存使用等参数,则打开注册表,找到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server
其中的ImagePath项的值为:
"c:\memcached\memcached.exe" -d runservice
改成:
"c:\memcached\memcached.exe" -p 12345 -m 128 -d runservice
存后重新启动 memcached 服务,然后在命令行中输入netstat -n -a 看看现在端口是不是改啦,^_^。