发布于 2016-01-11 11:55:51 | 188 次阅读 | 评论: 0 | 来源: 网友投递
Memcache 高性能分布式内存对象缓存系统
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
这篇文章主要介绍了64位windows系统下安装Memcache缓存的相关资料,需要的朋友可以参考下
最近要玩Memcache,所以需要Windows 64位下搭建Memcache的开发调试环境,记录下自己安装搭建的过程,发现比Linux中搭建简单多了。
这里是我用Windows 7 64Bit安装Memcache的过程
1、安装PHP、Mysql以及Apache,这边环境我就不用多做介绍了,一键环境有很多,几乎不影响Memcache。(我自己的调试环境是PHPStudy)
2、下载安装Memcache,我这里下载的是64位版本。
a)下载解压之后放在硬盘的目录下,如:D:\memcached .
b)然后在运行中输入cmd进入命令行,进入到Memcached.exe 所在的目录,例如:D:\memcached
c)然后在Memcache目录,输入memcached.exe –d install,添加memcached.exe为服务
d)输入memcached.exe -d start,运行memcached程序。
C:\users\Test>d:
D:\>cd d:\memcache
d:\memcache>memcached.exe -d install
d:\memcache>memcached.exe -d start
Memcahed基本设置参数:
-p 监听的端口(默认是11211)
-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 显示帮助
注:经实验使用命令修改端口无效,相应的解决方案是修改注册表来达到这个修改端口和配置的目的。
我自己修改的值如下:(最大内存大小1024M,最大连接数:2048,IP地址:127.0.0.1,端口默认是11211,生效需要重启Memcached.exe服务)
进入注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server , 在其中有一个ImagePath 项,值为"d:\memcached\memcached.exe" -d runservice ,在后面加上 -l 127.0.0.1 -m 1024 -c 2048 最后ImagePath 项值应该像这样: d:\memcached\memcached.exe" -d runservice -l 127.0.0.1 -m 1024 -c 2048
使用telnet测试下memcache:
telnet 127.0.0.1 11211(注意:这边需要使用设置的IP和端口)
输入stats
3、修改PHP.ini扩展支持memcached。
下载php_memcache.dll, 请自己查找对应的php版本的文件。我自己用的PHPstudy的一键环境内自带memcached.dll文件了。
只要修改扩展,加上extension=php_memcache.dll
4、重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功
5、简单测试memcache运行
<?
$memcache = new Memcache;
$memcache->connect("127.0.0.1",11211);
echo "Server's version: " . $memcache->getVersion() . "<br />\n";
$memcache->set('key', 'This is a test!', 0, 60);
$val = $memcache->get('key');
echo $val;
?>
运行后出现:
Server's version: 1.4.2
This is a test!