2018年04月6日网站服务器迁移完成……

windows下安装 memcache + php

memcache 苏 demo 2112℃ 0评论

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 API is 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]
extension=php_memcache.dll

  • 重启apache

3.4 测试程序

01 <?php
02 $memcache = new Memcache;
03 $memcache ->connect( "localhost" ,11211); #根据情况要把"localhost" 改为 "127.0.0.1"
04
05 echo "Server's version: " . $memcache ->getVersion() . "<br />\n" ;
06
07 $tmp_object = new stdClass;
08 $tmp_object ->str_attr = "test" ;
09 $tmp_object ->int_attr = 123;
10
11 $memcache ->set( "key" , $tmp_object ,false,10);
12 echo "Store data in the cache (data will expire in 10 seconds)<br />\n" ;
13
14 echo "Data from the cache:<br />\n" ;
15 var_dump( $memcache ->get( "key" ));
16 ?>

不出错,就说明大功告成了。

原文: http://www.infony.co.cc/?p=322

打赏

转载请注明:苏demo的别样人生 » windows下安装 memcache + php

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情