您的位置:首页 > 数据库 > Memcache

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

2016-07-15 14:00 821 查看
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();

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: