windows环境下php程序使用memcache

来源:互联网 发布:条码比价软件下载 编辑:程序博客网 时间:2024/06/05 15:39

一、Memcache是什么
1.1、memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。Memcache是danga.com的一个项目,最早是为LiveJournal 服务的,最初为了加速 LiveJournal访问速度而开发的,后来被很多大型的网站采用。目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度!基于memcache作者对分布式cache的理解和解决方案。 memcache完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。

这个东西还是很好用的。看官方的说明如下:

Memcache模块提供了于memcached方便的面向过程及面向对象的接口,memcached是为了降低动态web应用从数据库加载数据而产生的一种常驻进程缓存产品。Memcache模块同时提供了一个session 处理器(memcache). 

先说一下我的环境吧,windows2003操作系统+apache2.2.19+php5.2.17

然后就记录一下详细的安装及使用吧。

首先下载memcache的windows版(下载地址:http://www.splinedancer.com/memcached-win32/memcached-1.2.4-Win32-Preview-20080309_bin.zip),解压放某个盘下面,我这里放在了d:\software\memcached-1.2.4\,

在终端(也即cmd命令界面)下输入“d:\software\memcached-1.2.4\memcached.exe -dinstall”安装,

再输入:“d:\software\memcached-1.2.4\memcached.exe -dstart” 启动该服务。

注意这样安装之后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。

卸载则输入:"d:\software\memcached-1.2.4\memcached.exe -d stop"停止服务,
“d:\software\memcached-1.2.4\memcached.exe -duninstall”卸载服务。

下载 php_memcache.dll,请自己查找对应的php版本的文件,复制其到php的安装目录下的ext下

然后在php.ini配置文件中加入一行“extension=php_memcache.dll”

然后设置一下memcache模块的参数:

[memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts = 20
memcache.chunk_size   = 8192
memcache.default_port = 11211
memcache.hash_strategy = "standard"
memcache.hash_function = "crc32"

session.save_handler = "files"

session.save_path="\temp"

重新 启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!

那么在程序中我们如何使用memcache呢?

以下是一个简单的示例:

    $memcache= new Memcache;
   $memcache->connect('10.1.42.112', 11211);//这里是你安装memcache服务的IP地址
   
    $userid ="moonsea";
    $result =array("success"=>true,"message"=>"are you ok?");
   $memcache->add("userrow:".$userid, $result);
    $output =json_encode($memcache->get("userrow:$userid"));
    echo"output:$output<hr />";


   $result['userid'] = $userid;
   $memcache->set("userrow:".$userid, $result);
    $output =json_encode($memcache->get("userrow:$userid"));
    echo"output:$output<hr />";
原创粉丝点击