windows7下安装 memcached

为了工作需要,今天在windows7环境安装了下了memcached。

想要安装memcached需要三个步骤

1、安装memcached服务

在网上下载一个 memcached for windows。将其解压到一个目录,暂时称之为MEMECACHED_HOST。

在命令行下进入到MEMECACHED_HOST目录,然后执行memcached.exe -p 11211 -l 127.0.0.1,这样memcached就启动起来了。

如果不想每次使用memcached的时候都手动启动的话,可以把它安装为windows 服务。方法为memcached.exe -d install -p 11211 -l 127.0.0.1

应该就可以了。

2、下载php_memcached.dll

这个php_memcached.dll并不是php环境自带的。这个需要大家自己到互联网上自己下载。

需要注意的是php_memcached.dll必须和自己机器上php版本想对应的。如果不对应,就会出现memcached加载不成功的情况(我今天就是因为这个搞了很长时间。我php是5.2.12 下载的php_memcached.dll确实for php5.3的 。。。。。)。dll文件下载成功以后,解压缩到php的ext目录下面。如果apache的httpd.conf中没有设置PHPIniDir这个变量,估计需要把这个dll复制到system32目录下面(不太确定这个??)。

3、为php配memcached扩展

memcached服务器已经启动了,但是php还是不能连接这个服务。因为,我们还没有为php配置memcached扩展。

打开php.ini(确保是php加载的按个ini文件)添加一行

extension=php_memcache.dll

如果你php.ini已经有这个扩展那就不需要咱添加了。如果extension=php_memcache.dll签名有个“;”则需要把这个“;”去掉

所有上面三步都做完之后, 重启apache。

重启好apache 以后看看phpinfo的输出结果。

如果有memcached 这项输出,说明memcached扩展已经添加成功。

如果没有就表明memcached还有什么地方没有正确配置。那就需要再好好看看上面三步哪个地方出漏子了。 这个就需要大家自己好好看看了。真不行的话

就google吧。

memcached环境配好了。

万事俱备只欠东风。现在写一个小程序看看memcached是不是好用吧!

 
  
1 <? php
2   $memcache = new Memcache; // 创建一个memcache对象
3   $memcache -> connect( ' localhost ' , 11211 ) or die ( " Could not connect " ); // 连接Memcached服务器
4 $memcache -> set( ' key ' , ' test ' ); // 设置一个变量到内存中,名称是key 值是test
5 $get_value = $memcache -> get( ' key ' ); // 从内存中取出key的值
6 echo $get_value ;
代码范例(来自chinaunix):
PHP代码
  1. <?php  
  2. //访问统计  
  3. $memcache = new Memcache;  
  4. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  5. if($s=$memcache->get(’a’)) {  
  6.     $s=$s+1;  
  7.     $memcache->set(’a’,$s);  
  8. }  
  9. else  
  10. $memcache->set(’a’,1);  
  11. echo ’访问结果为:’.$s;  
  12. ?>  
等效
PHP代码
  1. <?php  
  2. $memcache = new Memcache;  
  3. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  4.   
  5. if($s=$memcache->increment(’a’,1)) {  
  6.     echo $s;      
  7. }  
  8. else  
  9. $memcache->set(’a’,1);  
  10. ?>  
数据压缩
PHP代码
  1. <?php  
  2. $memcache = new Memcache;  
  3. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  4. $test=(str_repeat(’jetwong’,100000));  
  5. $memcache->set(’b’,($test));  
  6. ?>  
  7. 使用压缩:  
  8. <?php  
  9. $memcache = new Memcache;  
  10. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  11. $test=(str_repeat(’jetwong’,100000));  
  12. $memcache->set(’b’,($test),MEMCACHE_COMPRESSED);  
  13. ?>  
内存的更新清理
PHP代码
  1. <?php  
  2. $memcache = new Memcache;  
  3. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  4.   
  5. /*设置值*/  
  6. $status = $memcache->getStats();  
  7. echo ’设置前内存使用情况’.$status[’bytes’].’<br>’;  
  8. echo ’设置后’;  
  9. for($i=0;$i<9;$i++) {  
  10.     $memcache->set(’b’.$i,rand(1,99));      
  11.     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);         
  12. }  
  13.   
  14. /*查看设置的值*/  
  15. $status = $memcache->getStats();  
  16. echo ’delete前内存使用情况’.$status[’bytes’].’<br>’;  
  17. echo ’<br>开始delete’;  
  18. for($i=0;$i<9;$i++) {  
  19.     $memcache->delete(’b’.$i);      
  20.     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);  
  21. }  
  22.   
  23. /*查看flush使用的情况*/  
  24. $status = $memcache->getStats();  
  25. echo ’使用flush前内存使用情况’.$status[’bytes’].’<br>’;  
  26. echo ’使用flush情况:’;  
  27. for($i=0;$i<9;$i++) {  
  28.     $memcache->set(’b’.$i,rand(1,99));      
  29.     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);    
  30. }  
  31. $memcache->flush();  
  32. echo ’flush之后:’;  
  33. for($i=0;$i<9;$i++) {          
  34.     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);  
  35. }  
  36. $status = $memcache->getStats();  
  37. echo ’flush后内存使用情况’.$status[’bytes’].’<br>’;  
  38. ?>  
内存超量测试
PHP代码
  1. <?php  
  2. $memcache = new Memcache;  
  3. $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  4.   
  5. //600K左右  
  6. $test1str_repeat(’jetlee’,100000);  
  7. //600K左右  
  8. $test2str_repeat(’jetlee’,100000);  
  9. //600K左右  
  10. $test3str_repeat(’李连杰’,200000);  
  11. //600K左右  
  12. $test4str_repeat(’连杰李’,100000);  
  13. //200K  
  14. $test5file_get_contents(’http://img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);  
  15. $test6file_get_contents(’http://img.pconline.com.cn/images/photoblog/1767557/20069/28/1159417108902_mthumb.jpg’);  
  16.   
  17. for($i=1;$i<=6;$i++) {  
  18.     $j=’test’.$i;  
  19.     if($memcache->set($j,$$j)) {  
  20.         echo $j.’->设置成功<br>’;  
  21.         $status = $memcache->getStats();  
  22.         echo ’内存:’.$status[’bytes’].’<br>’;  
  23.     }  
  24.     else {  
  25.         echo $j.’->设置失败<br>’;  
  26.     }  
  27. }  
  28. ?>  
总结
PHP代码
  1. <?  
  2. //设置篇  
  3. if($data = $memcache->get(’k’,$v)) {  
  4.     //显示我们的数据  
  5.     }  
  6. else {  
  7.     $data = get_from_database; //得到数据源  
  8.     if(!$memcache->set(’k’,$data), MEMCACHE_COMPRESSED) //开始设置  
  9.     log();    //不成功,记录失败信息      
  10. }  
  11. ?>  

再次强调下:php_memcached.dll必须是和php版本相匹配的。否则,可能会出现memcached的扩展加载不成功的情况。

如果想了解memcached命令及其意思,可以直接在进入到MEMCACHED_HOST下输入memcached -h 就会把所有的命令及其解释

都显示出来。。 

参考:http://jxxms.javaeye.com/blog/804676

http://apps.hi.baidu.com/share/detail/5634652

http://www.jzxue.com/fuwuqi/http-iis-apache/200908/15-2496_2.html

http://wenku.baidu.com/view/fcb5770bf78a6529647d534b.html

http://jxxms.javaeye.com/blog/804676

http://www.cnblogs.com/analyzer/articles/1581957.html

转载于:https://www.cnblogs.com/ainiaa/archive/2011/03/08/1976974.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值