php中memcache的配置与使用

一.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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章