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

[经验分享] windows下安装 memcache + php

[复制链接]

尚未签到

发表于 2017-3-24 12:36:48 | 显示全部楼层 |阅读模式
1.memcache是什么
  Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
  Memcached is an in-memory key-value store for small chunks of  arbitrary data (strings, objects) from results of database calls, API  calls, or page         rendering.
  Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its APIis available for most popular languages.
  和其他的Cache一样(我用过 Java的OSCache PHP的Smaty Cache和Symfony Cache),思路都是把动态网站经常被访问的资源,或者数据量很大的资源保存到内存中去,从而达到服务器负荷降低,响应加快的目的。不过Memcache似乎更加通用,他不是莫一种BS架构的插件,而是以Windows 服务或者是Linux 守护进程那样,以平行的方式提供API给服务器的其他应用程序。Cache对象以key-value这种Map结构保存在内存,memocache有一套特有的内存对象管理方式。详细运作原理可以参考Sina的Memcached深度分析(原创)。
  memcached的基本设置:

-p 监听的端口
-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 显示帮助
2.Memcache主要用来做什么
  用的最多的还是数据检索结果的缓存。因为现在服务器出现负荷过高的时候,多半和数据库瓶颈有关。对于那些80/20中的20%的特殊检索(特殊包括:查询特别频繁,检索特别复杂,返回结果特别大),如果如何怎么tuning,怎么优化,在走投无路升级硬件之前,可以考虑考虑memcache这一类的cache工具了。当然咯, 信息的刷新间隔和效率优化时反比的。对于那些一定要实时刷新的数据,使用Cache只会是搬起石头砸自己的脚。
  另外,还有一个DB服务器侧的技术,就是SQL的Cache,比如Mysql Query Cache。这种技术对于那种频繁访问,且发行SQL是一样的query,是个很不错的选择。可以综合起来使用。
3.Windows下如何安装
  PHP的官方网站有详细的说明,一个 pecl install memcache就可以一键搞定。可惜的是,Windows下不行,总会报
  ERROR: Did not understand the completion status returned from msdev.exe.
  这个错。
  估计原因主要发生在编译系统上。Linux上的gcc是默认的,windows下没有相应的编译器所以出错。
  还是有好人的,辛辛苦苦地把memcache编译成exe贡献给大家。
  安装流程
3.1 下载windows版的memcache
  http://code.jellycan.com/memcached/直接下载windows版本
  上面已经是最新的稳定版啦,如果想要自己编译的,也可以看看他是怎么一步一步做的。
3.2 安装服务

  • 下载的zip解压缩到一个目录(G:\lib\memcached-1.2.6)
  • 如果是win7,请把memcached.exe的执行权限设为管理员
  • 安装服务  G:\lib\memcached-1.2.6>memcached.exe -d install
  • 启动服务 G:\lib\memcached-1.2.6>memcached.exe -d start
  这个时候可以看看系统的服务,应该增加了一个memcached的服务
3.3 设定PHP的extention

  • 下载 php_memcache.dll (http://downloads.php.net/pierre/php_memcache-2.2.6-5.3-nts-vc9-x86.zip)
  • 把php_memcache.dll放到php的ext目录(G:\Program Files\PHP\ext)【此处的dll文件可能不正确,因为编辑问题,可以使用附件DLL文件】
  • 修改php.ini,引用这个extention
  [PHP_MEMCACHE]
extension=php_memcache.dll



  • 重启apache
3.4 测试程序
view sourceprint?

01<?php

02$memcache= newMemcache;

03$memcache->connect("localhost",11211); #根据情况要把"localhost"改为 "127.0.0.1"

04

05echo"Server's version: ". $memcache->getVersion() . "<br />\n";

06

07$tmp_object= newstdClass;

08$tmp_object->str_attr = "test";

09$tmp_object->int_attr = 123;

10

11$memcache->set("key",$tmp_object,false,10);

12echo"Store data in the cache (data will expire in 10 seconds)<br />\n";

13

14echo"Data from the cache:<br />\n";

15var_dump($memcache->get("key"));

16?>



  不出错,就说明大功告成了。
  原文: http://www.infony.co.cc/?p=322
3.4 测试程序
  开机时自启动 MEMCACHED
  /usr/local/bin/memcached -d -m 10 -u root -l 122.225.96.117 -p 11211 -c 256 -P /tmp/memcached.pid

运维网声明 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-354673-1-1.html 上篇帖子: xp下php环境配置 下篇帖子: Understanding PHP Opcode (Forward)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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