php memcache服务器端的安装和memcached客户端的安装。

来源:互联网 发布:软件源添加超时 编辑:程序博客网 时间:2024/05/12 00:09

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。Memcache官方网站:http://www.danga.com/memcached,更多详细的信息可以来这里了解。

为什么会有Memcache和memcached两种名称?其实Memcache是这个项目的名称,而memcached是它服务器端的主程序文件名,知道我的意思了把~~~~。一个是项目名称,一个是主程序文件名,在网上看到了很多人不明白,于是混用了。

memcache是PHP的一个PECL库插件,这个插件的作用,就是提供一个界面,通过PHP来使用一个功能为“内存缓存的过程式程序”的程序,这个程序就叫memcached。
 有点绕口,就是说,memcached是一个软件,而memcache是一个PHP的接口,这个接口使PHP程序代码能够操作和使用memcached这个软件。

Memcache的安装

分为两个过程:memcache服务器端的安装和memcached客户端的安装。

所谓服务器端的安装就是在服务器(一般都是linux系统)上安装Memcache实现数据的存储。

所谓客户端的安装就是指php(或者其他程序,Memcache还有其他不错的api接口提供)去使用服务器端的Memcache提供的函数,需要php添加扩展。

环境:

windows 7(64位);
php-5.5.12;

第一步:memcached客户端的安装

        http://download.csdn.net/detail/zsjangel/7104727

  下载完成后,解压(我用的是 64位的),进入 DOS 命令行

  先 cd 到解压后的目录 例如:切换到C://wamp/www/memcached

  然后执行服务注册命令

  memcached.exe -d install

  卸载服务命令memcached.exe -d uninstall

  然后启动服务memcached.exe -d start

  停止服务memcached.exe -d stop

第二步:memcache服务器端的安装

http://download.csdn.net/detail/zsjangel/7104749

下载的时候需要注意一下版本号问题,用phpinfo()函数查看当前PHP版本的信息:

所以我用的是:php5.5-ts-vc11-x86

安装扩展

将下载下来的压缩包解压,然后将 php_memcache.dll模块拷贝到PHP的ext文件夹内。

修改php.ini文件//C:\wamp\bin\apache\apache2.4.9\bin

引入如下代码

extension=php_memcache.dll

测试

重启web服务器。

使用phpinfo()函数查看:

在memcache.php文件中输入如下代码:

$memcache->connect("127.0.0.1", 11211);//此处第一个参数是服务器的IP地址,也可以是主机名,第二个参数是Memcache的开放的端口(默认是11211):

在浏览器中进行测试,这里需要注意的是memcache服务必需在启动状态下


写个简单的实例测试:

<?php
$mem = new Memcache;
$mem->connect('127.0.0.1',11211);
$mem->set('key','hello memcache!');
$out = $mem->get('key');
$mem->set('key1','This is first value',0,60);
$val = $mem->get('key1');
echo $val."<br/>";
//替换数据
$mem->replace('key1','This is replace value',0,60);
$val = $mem->get('key1');
echo $val."<br/>";
//保存数组
$arr = array('aa','bb','cc','dd');
$mem->set('key2',$arr,0,60);
$val = $mem->get('key2');
var_dump($val);echo "<br/>";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo $val."<br/>";
//清楚所有数据
$mem->flush();
$val = $mem->get('key2');
var_dump($val);echo "<br/>";
$mem->close();
?>


1 0
原创粉丝点击