Memcached的使用和协议分析详解.doc_第1页
Memcached的使用和协议分析详解.doc_第2页
Memcached的使用和协议分析详解.doc_第3页
Memcached的使用和协议分析详解.doc_第4页
Memcached的使用和协议分析详解.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作者:heiyeluren (黑夜路人)邮箱:heiyeluren AT 博客:/heiyeshuwu 时间:2006-11-12关键字:PHP Memcached Linux 缓存Memcached是的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。(关于Memcached的更多信息请Google)Memcached官方网站:/memcached【安装Memcached服务器端】我目前的平台,服务器是Fedora Core 1(内核:2.4.22),客户端是Windows XP SP2,需要安装的就是服务器的Memcached的守护进程和客户端的PHP扩展php_memcache两个东西。现在我分别来讲。服务器端主要是安装memcached服务器端,目前的最新版本是 memcached-1.2.0 。下载:/memcached/dist/memcached-1.2.0.tar.gz另外,Memcached用到了libevent这个库用于Socket的处理,所以还需要安装libevent, libevent的最新版本是libevent-1.2。(如果你的系统已经安装了libevent,可以不用安装)官网:/provos/libevent/下载: /provos/libevent-1.2.tar.gz我分别把两个东东下载回来,放到 /tmp 目录下:# cd /tmp# wget /memcached/dist/memcached-1.2.0.tar.gz # wget /provos/libevent-1.2.tar.gz先安装libevent:# tar zxvf libevent-1.2.tar.gz# cd libevent-1.2# ./configure -prefix=/usr# make# make install然后看看我们的libevent是否安装成功:# ls -al /usr/lib | grep libeventlrwxrwxrwx 1 root root21 11? 12 17:38 libevent-1.2.so.1 - libevent-1.2.so.1.0.3-rwxr-xr-x 1 root root 263546 11? 12 17:38 libevent-1.2.so.1.0.3-rw-r-r- 1 root root 454156 11? 12 17:38 libevent.a-rwxr-xr-x 1 root root 811 11? 12 17:38 libevent.lalrwxrwxrwx 1 root root 21 11? 12 17:38 libevent.so - libevent-1.2.so.1.0.3还不错,都安装上了,再来安装memcached,同时需要安装中指定libevent的安装位置:# cd /tmp# tar zxvf memcached-1.2.0.tar.gz# cd memcached-1.2.0# ./configure -with-libevent=/usr# make# make install如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。安装完成后会把memcached放到 /usr/local/bin/memcached ,我们看以下是否安装了:# ls -al /usr/local/bin/mem*-rwxr-xr-x 1 root root 137986 11? 12 17:39 /usr/local/bin/memcached-rwxr-xr-x 1 root root 140179 11? 12 17:39 /usr/local/bin/memcached-debug 恩,安装完成了,现在我们看一下memcache的帮助:# /usr/local/bin/memecached -hmemcached 1.2.0-p port number to listen on-s unix socket path to listen on (disables network support) -l interface to listen on, default is INDRR_ANY-d run as a daemon-r maximize core file limit-u assume identity of (only when run as root) -m max memory to use for items in megabytes, default is 64 MB-M return error on memory exhausted (rather than removing items)-c max simultaneous connections, default is 1024 -klock down all paged memory-v verbose (print errors/warnings while in event loop)-vv very verbose (also print client commands/reponses) -h print this help and exit-i print memcached and libevent license-b run a managed instanced (mnemonic: buckets)-P save PID in , only used with -d option -f chunk size growth factor, default 1.25-n minimum space allocated for key+value+flags, default 48参数不算多,我们来启动一个Memcached的服务器端:# /usr/local/bin/memcached -d -m 10 -u root -l 00 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程,-m是分配给Memcached使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcached的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址00,-p是设置Memcached监听的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,-P是设置保存Memcached的pid文件,我这里是保存在 /tmp/memcached.pid,如果要结束Memcached进程,执行: # kill cat /tmp/memcached.pid也可以启动多个守护进程,不过端口不能重复。【安装Memcached的PHP扩展】Memcached就是在服务器监听端口,通过一定的协议交互来写入数据到服务器内存中,或者获取一些值。如果你了解Memcached的交互协议,完全可以自己构建Memcached的客户端,目前网上也有很多构建好的Memcached客户端的PHP Class,可以直接用,不过我这里为了效率,还是决定使用PECL中Memcached的专用扩展,因为毕竟是用C写的,效率比较高,而且安装部署比较方便。下载PECL中的Memcache,因为我的客户端是Windows XP,所以需要下载dll版,我的PHP版本是PHP 5.1.4,必须下载PHP 5.1专用的扩展。PECL官网: (For Linux) (For Windows)扩展下载: /download.php/ext/5_1/5.1.2/php_memcache.dll 如果你的PHP是其他版本,请到 /ext.php/php_memcache.dll 选择你相应的版本,如果是Linux下的PHP,请到 /package/memcache选择相应想要下载的版本。下载完了以后,我把php_memcache.dll 拷贝到 c:php5ext 目录下,如果你的扩展目录是在是缺省路径,(就是没有修改过php.ini中的扩展路径) 请拷贝到 c:windows 目录下,如果是Linux平台,请自己编译安装,可以在程序中使用dl()函数加载,或者在编译php的时候加载进去。最后重启Web服务器,IIS/Apache。 我的网站目录是在:d:mysite 目录下,现在建立一个 phpinfo.php 文件在网站根目录下,代码是:看有没有成功加载 php_memcache.dll 扩展。如果显示了 Memcached 选项和相应的版本信息,则说明成功加载了,否则请仔细检查上面的步骤。如果一切正确无误,那么说明安装成功。【Memcached初试】 接口介绍 服务器端和客户端都安装配置好了,现在我们就来测试以下我们的成果。Memcached客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考PHP手册 LXXV. Memcached Functions 这章。我们为了简单方便,就使用面向对象的方式,也便于维护和编写代码。Memcached面向对象的常用接口包括:Memcached:connect - 打开一个到Memcached的连接Memcached:pconnect - 打开一个到Memcached的长连接Memcached:close - 关闭一个Memcached的连接Memcached:set - 保存数据到Memcached服务器上Memcached:get - 提取一个保存在Memcached服务器上的数据 Memcached:replace - 替换一个已经存在Memcached服务器上的项目(功能类似Memcached:set)Memcached:delete - 从Memc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论