memcached介绍:
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。【摘自百度百科】
memcache和memcached的区别 :
memcache是php的一个扩展,用于php管理memcached,php-memcache.dll。
如果安装了memcached不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题
如果安装了memcache扩展但是没有安装memcached服务,那么这个就无法使用
只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能
一、安装memcache的php扩展
1. php_memcache.dll 下载:
php_memcache-3.0.8-5.5-ts-vc11-x64
下载地址:http://pecl.php.net/package/memcache/3.0.8/windows
选择[5.5 Thread Safe (TS) x64]这个版本的下载。
2. 把php_memcache.dll放到php的ext目录:
例如:D:\WampServer\bin\php\php5.5.12\ext\php_memcache.dll
3. 打开 php.ini 文件:
我的php.ini的位置:D:\WampServer\bin\php\php5.5.12\php.ini
4. 在 php.ini上增加一行:
extension=php_memcache.dll
5. 重启Wampserver的apache服务
6.查看phpinfo中是否有memcache,如果有说明成功。
二、安装memcached
1. Memcached-win64 下载:
memcached-win64-1.4.4-14.zip
下载地址: http://www.2cto.com/uploadfile/2012/0713/20120713110308123.zip
2. 解压放某个盘下面,比如:
D:\WampServer\bin\memcached\memcached.exe
3. 在终端(也即cmd命令界面)下输入以下命令安装windows服务:
D:\WampServer\bin\memcached>memcached.exe -d install
备注:如果此时报错“failed to install service or service already installed”
解决办法:
管理员身份安装,首先找出cmd.exe的原文件【C:\Windows\System32/cmd.exe】
右击以管理员身份运行,接下来就OK
4. 再输入下面命令启动:
D:\WampServer\bin\memcached>memcached.exe -d start
(之后屏幕无任何提示,但是在“任务管理器”中勾选“显示所有用户进程”,此时可以看到memcached.exe进程正在运行)默认端口11211,外部访问需要开放该端口,否则无法成功连接。
5. 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 显示帮助
设置参数时需要先停止memcached,然后用命令行设置
比如:c:\memcached> memcached.exe -m 1 -d start
6. 停止memcached:
D:\WampServer\bin\memcached>memcached.exe -d stop
7. 卸载memcached:
D:\WampServer\bin\memcached>memcached.exe -d uninstall
8.重启电脑,然后查看php扩展里是否勾有php_memcache,如果有说明成功。
9.php代码测试
在www下写一个test.php文件,内容如下:
<?php $memcache = memcache_connect('localhost', 11211); if ($memcache) { $memcache->set("str_key", "String to store in memcached"); $memcache->set("num_key", 123); $object = new StdClass; $object->attribute = 'test'; $memcache->set("obj_key", $object); $array = Array('assoc'=>123, 345, 567); $memcache->set("arr_key", $array); var_dump($memcache->get('str_key')); var_dump($memcache->get('num_key')); var_dump($memcache->get('obj_key')); } else { echo "Connection to memcached failed"; } ?>
然后运行一下,就知道结果了。。。