一.memcache的简介以及memcache与memcached的区别
Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached管理这些HashTable,所以速度非常快。
谈谈memcache和memcached的区别。简单来说,memcache是项目名称,而memcached则是它服务器端的主程序文件名,知道这一点就行了。
二.memcache的windows环境下的安装
A.安装memcache的php扩展
1.php_memcache.dll下载:
下载地址:php_memcache.zip
http://www.2cto.com/uploadfile/2012/0713/20120713110240777.zip
2.把php_memcache.dll放到php的ext目录:
例如:D:\WampServer\bin\php\php5.3.11\ext\php_memcache.dll
3. 打开 php.ini 文件:
我的php.ini的位置:D:\WampServer\bin\php\php5.3.11\php.ini
4. 在 php.ini上增加一行:
extension=php_memcache.dll
5. 重启Wampserver的apache服务
B.安装memcached
1. Memcached-win64 下载:
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
4. 再输入下面命令启动:
D:\WampServer\bin\memcached>memcached.exe -d start
5.打开phpinfo()页面,查看是否安装成功
C.一些我自己在安装过程中出现的问题以及解决办法
下面为测试代码:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
如果输出结果如下则正确:
Server's version: 1.4.5
Store data in the cache (data will expire in 10 seconds)
Data from the cache:
object(stdClass)#3 (2) { ["str_attr"]=> string(4) "test" ["int_attr"]=> int(123) }
最常见的问题:提示not found class memcache。如果出现这个问题,先不要慌,回头检查一下配置。如果连phpinfo()里面都没有打印出memcache的话,那说明你的安装过程出现了错误,按照上面的过程一步一步重新操作。如果实在不行,那么php_memcache.dll的版本去下载一个与自己所用PHP相同版本的,我在安装的时候,发现点击wamp直接进去的php.ini和在wamp目录下的php.ini是路径不同的两个文件,可能是因为当时配置是另选的路径,这个时候最好是两个都添加上extension=php_memcache.dll这句话,说了这么多,这里提醒一下就是php.ini的路径要找对。
三.memcache的基本语法
下面就列举出一些memcache的常见用法:
memcache函数所有的方法列表如下:
Memcache::add – 添加一个值,如果已经存在,则返回false
Memcache::addServer – 添加一个可供使用的服务器地址
Memcache::close – 关闭一个Memcache对象
Memcache::connect – 创建一个Memcache对象
memcache_debug – 控制调试功能
Memcache::decrement – 对保存的某个key中的值进行减法操作
Memcache::delete – 删除一个key值
Memcache::flush – 清除所有缓存的数据
Memcache::get – 获取一个key值
Memcache::getExtendedStats – 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus – 获取运行服务器的参数
Memcache::getStats – 返回服务器的一些运行统计信息
Memcache::getVersion – 返回运行的Memcache的版本信息
Memcache::increment – 对保存的某个key中的值进行加法操作
Memcache::pconnect – 创建一个Memcache的持久连接对象
Memcache::replace -对一个已有的key进行覆写操作
Memcache::set – 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold – 对大于某一大小的数据进行压缩
Memcache::setServerParams – 在运行时修改服务器的参数
关于这些方法的详细用法就不在次列举了,下面会提供专门讲解的链接,有兴趣的同学可以点击进去看一看。
参考链接:http://www.jb51.net/article/48745.htm
http://blog.163.com/sun_jian_zhang/blog/static/1878040412013102610415184/