本文主要解决的是window下memcached的安装的问题,在使用的过程中经常会被第一步环境的配置搞混,本文结合我的配置过程和遇到的问题,做一个总结
1,开启php memcache的扩展,在文件 D:\xampp\php\php.ini文件中修改(如果没有则添加)
extension=php_memcache.dll
2,添加memcache的配置信息
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
对配置信息的解释如下
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211 //
3,下载对应版本的memcache.exe版本,这个可以先通过phpinfo()获取服务器的php版本,然后选择对应的memcache.exe版本,这个很重要,如果版本不一样,则会导致配置失败,最容易出现问题的就是这个地方
可以在下面的连接下载 memcache各个版本下载
下载完成后,copy到php\ext\目录下,
4,开始安装memcache.exe,具体步骤如下
a,点击开始->搜索->cmd,然后右键点击cmd,选择"用管理员身份运行"->进入memcache.exe的目录,我的目录是d:\memcache
b,输入下面命令进行安装
d:/memcached/memcached.exe -d install
c,没有错误信息,表示安装成功,然后输入下面的指令来开启memcache服务
memcached.exe -d start
或者也可以这样启动
net start "memcached Server"
5,此时,你已经安装好memcache.exe了,并且监听了11211端口,默认情况下,服务所拥有的内存只有64mb,我们可以修改注册表来增加内存
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server .
把ImagePath更改为
“C:/memcached/memcached.exe” -d runservice -m 512
如图所示
6,测试memcache是否安装成功
运行下面的php
<?php
$memcache = new Memcache();
$memcache->connect('localhost', 11211) or die ("Could not connect"); $version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\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)
<br/>\n"; $get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n"; var_dump($get_result);
?>
结果如图所示
7,常见遇到的问题
a,memcache中ts,nts的区别,ts是指线程安全,nts是非线程安全,在phpinfo()中,如果Thread_Safe设置为enabled,则最好选用ts的,反之,选择nts的