zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    求二维数组的最大子集和
    电梯调度《二》
    电梯调度问题
    BIEE 通过提示器选择展示列(列名接收表示变量)
    BIEE时间序列函数
    Python学习笔记(三)
    Python学习笔记(二)
    Python学习笔记(一)
    BIE前台常用设置
    BIEE 连接BW query query结构 引用
  • 原文地址:https://www.cnblogs.com/ainiaa/p/1976974.html
Copyright © 2011-2022 走看看