设为首页 收藏本站
查看: 993|回复: 0

[经验分享] windows7下安装 memcached

[复制链接]

尚未签到

发表于 2015-9-1 07:05:04 | 显示全部楼层 |阅读模式
  为了工作需要,今天在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代码

  • <?php  
  • //访问统计  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  • if($s=$memcache->get(’a’)) {  
  •     $s=$s+1;  
  •     $memcache->set(’a’,$s);  
  • }  
  • else  
  • $memcache->set(’a’,1);  
  • echo ’访问结果为:’.$s;  
  • ?>  

等效



PHP代码

  • <?php  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  •   
  • if($s=$memcache->increment(’a’,1)) {  
  •     echo $s;      
  • }  
  • else  
  • $memcache->set(’a’,1);  
  • ?>  

数据压缩



PHP代码

  • <?php  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  • $test=(str_repeat(’jetwong’,100000));  
  • $memcache->set(’b’,($test));  
  • ?>  
  • 使用压缩:  
  • <?php  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  • $test=(str_repeat(’jetwong’,100000));  
  • $memcache->set(’b’,($test),MEMCACHE_COMPRESSED);  
  • ?>  

内存的更新清理



PHP代码

  • <?php  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  •   
  • /*设置值*/  
  • $status = $memcache->getStats();  
  • echo ’设置前内存使用情况’.$status[’bytes’].’<br>’;  
  • echo ’设置后’;  
  • for($i=0;$i<9;$i++) {  
  •     $memcache->set(’b’.$i,rand(1,99));      
  •     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);         
  • }  
  •   
  • /*查看设置的值*/  
  • $status = $memcache->getStats();  
  • echo ’delete前内存使用情况’.$status[’bytes’].’<br>’;  
  • echo ’<br>开始delete’;  
  • for($i=0;$i<9;$i++) {  
  •     $memcache->delete(’b’.$i);      
  •     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);  
  • }  
  •   
  • /*查看flush使用的情况*/  
  • $status = $memcache->getStats();  
  • echo ’使用flush前内存使用情况’.$status[’bytes’].’<br>’;  
  • echo ’使用flush情况:’;  
  • for($i=0;$i<9;$i++) {  
  •     $memcache->set(’b’.$i,rand(1,99));      
  •     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);   
  • }  
  • $memcache->flush();  
  • echo ’flush之后:’;  
  • for($i=0;$i<9;$i++) {         
  •     echo ’<br>’.$i.’->’.$memcache->get(’b’.$i);  
  • }  
  • $status = $memcache->getStats();  
  • echo ’flush后内存使用情况’.$status[’bytes’].’<br>’;  
  • ?>  

内存超量测试



PHP代码

  • <?php  
  • $memcache = new Memcache;  
  • $memcache->connect(’localhost’, 11211) or die ("Could not connect");  
  •   
  • //600K左右  
  • $test1= str_repeat(’jetlee’,100000);  
  • //600K左右  
  • $test2= str_repeat(’jetlee’,100000);  
  • //600K左右  
  • $test3= str_repeat(’李连杰’,200000);  
  • //600K左右  
  • $test4= str_repeat(’连杰李’,100000);  
  • //200K  
  • $test5= file_get_contents(’http://img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);  
  • $test6= file_get_contents(’http://img.pconline.com.cn/images/photoblog/1767557/20069/28/1159417108902_mthumb.jpg’);  
  •   
  • for($i=1;$i<=6;$i++) {  
  •     $j=’test’.$i;  
  •     if($memcache->set($j,$$j)) {  
  •         echo $j.’->设置成功<br>’;  
  •         $status = $memcache->getStats();  
  •         echo ’内存:’.$status[’bytes’].’<br>’;  
  •     }  
  •     else {  
  •         echo $j.’->设置失败<br>’;  
  •     }  
  • }  
  • ?>  

总结



PHP代码

  • <?  
  • //设置篇  
  • if($data = $memcache->get(’k’,$v)) {  
  •     //显示我们的数据  
  •     }  
  • else {  
  •     $data = get_from_database; //得到数据源  
  •     if(!$memcache->set(’k’,$data), MEMCACHE_COMPRESSED) //开始设置  
  •     log();    //不成功,记录失败信息      
  • }  
  • ?>  
  再次强调下: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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108060-1-1.html 上篇帖子: Memcached 源码分析——从 main 函数说起 下篇帖子: memcached在大负载高并发网站上的应用(一)---简介 原创 王泽宾
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表