您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > php的Memcache方法介绍及应用实例
使用Memcache在PHP中调试方法的介绍及应用如果我们在网络开发中,特别是大访问量的web项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用memcahce。首先我们必须要安装,接下来如何使用memcache,在这里介绍下在linux下安装和windows下安装如下及配置:一、linux下的Memcache安装:1.下载memcache的linux版本,注意memcached用libevent来作事件驱动,所以要先安装有libevent。2.安装pecl::memcache。用pecl命令行工具安装:peclinstallmemcache或直接从源码安装:phpize./configuremakemakeinstall二、Windows下的Memcache安装:1.下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2.在终端(也即cmd命令界面)下输入‘c:\memcached\memcached.exe-dinstall’安装3.再输入:‘c:\memcached\memcached.exe-dstart’启动。NOTE:以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。4.下载,请自己查找对应的php版本的文件5.在C:\winnt\php.ini加入一行‘extension=php_memcache.dll’6.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!三、memcached的基本设置:-p监听的端口-l连接的IP地址,默认是本机-dstart启动memcached服务-drestart重起memcached服务-dstop|shutdown关闭正在运行的memcached服务-dinstall安装memcached服务-duninstall卸载memcached服务-u以的身份运行(仅在以root运行的时候有效)-m最大内存使用,单位MB。默认64MB-M内存耗尽时返回错误,而不是删除项-c最大同时连接数,默认是1024-f块大小增长因子,默认是1.25-n最小分配空间,key+value+flags默认是48-h显示帮助四、php.ini中的配置:[Memcache]一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。是否在遇到错误时透明地向其他服务器进行故障转移。memcache.allow_failover=On接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。memcache.max_failover_attempts=20数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。如果发现无法解释的速度降低,可以尝试将此值增加到32768。memcache.chunk_size=8192连接到memcached服务器时使用的默认TCP端口。memcache.default_port=11211控制将key映射到server的策略。默认值standard表示使用先前版本的老hash策略。设为consistent可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。memcache.hash_strategy=standard;控制将key映射到server的散列函数。默认值crc32使用CRC32算法,而fnv则表示使用FNV-1a算法。FNV-1a比CRC32速度稍低,但是散列效果更好。memcache.hash_function=crc32memcache也可以作为session的存储模块,具体参看:memcachePHP的session.save_handler.1.$memcache=newMemcache;2.$memcache-connect('localhost',11211)ordie(Couldnotconnect);3.4.$version=$memcache-getVersion();5.echoServer'sversion:.$version.BR\n;6.7.$tmp_object=newstdClass;8.$tmp_object-str_attr='test';9.$tmp_object-int_attr=123;10.11.$memcache-set('key',$tmp_object,false,10)ordie(Failedtosavedataattheserver);12.echoStoredatainthecache(datawillexpirein10seconds)BR\n;13.14.$get_result=$memcache-get('key');15.echoDatafromthecache:BR\n;16.17.var_dump($get_result);我们已经安装好了,也配置好了memcache,现在接下来如何调试memcache.来做个测试。先搞个表:createtablet(idchar(36)notnullprimarykey,usernamevarchar(20)notnull);插点数据:insertintotvalues(uuid(),'Livia'),(uuid(),'Lucy'),(uuid(),'Sivia'),(uuid(),'david');写个简单脚本测试一下。?php$host='192.168.1.21:3306';$user='webuser';$passwd='123456';$db='test';$conn=mysql_connect($host,$user,$passwd);mysql_select_db($db,$conn);$sql='select*fromtorderbyiddesc';$result=mysql_query($sql,$conn);while($row=mysql_fetch_array($result,MYSQL_ASSOC)){$test_key[]=$row;}$sql=md5($sql);$mem=newMemcache;$mem-connect(192.168.1.21,11211);$mem-set($sql,$test_key,MEMCACHE_COMPRESSED,600);print_r($mem-get($sql));?看看结果出来了。C:\php-fd:/lamp/web2/phpinfo.phpArray([0]=Array([id]=d8f1ec2a-c033-11dd-bd1a-002215c94322[username]=david)[1]=Array([id]=d8f1eb9e-c033-11dd-bd1a-002215c94322[username]=Sivia)[2]=Array([id]=d8f1ea9a-c033-11dd-bd1a-002215c94322[username]=Lucy)[3]=Array([id]=d8f1e658-c033-11dd-bd1a-002215c94322[username]=Livia))现在我们已经介绍Memcache安装,不再赘述。再次着重介绍memcache的一些常用方法。Memcache::add//添加一个值,如果已经存在,则返回falseMemcache::addServer//添加Memcache地址Memcache::close//关闭一个Memcache的连接Memcache::connect//打开一个到Memcache的连接Memcache::decrement//对保存的某个key中的值进行减法操作Memcache::delete//删除一个Memcache上的key值Memcache::flush//刷新所有Memcache上保存的项目(类似于删除所有的保存的项目)Memcache::get//从Memcache上获取一个key值Memcache::getExtendedStats//获取进程池中所有进程的运行系统统计Memcache::getServerStatus//获取运行服务器的参数Memcache::getStats//获取当前Memcache服务器运行的状态Memcache::getVersion//返回运行的Memcache的版本信息Memcache::increment//对保存的某个key中的值进行加法操作Memcache::pconnect//打开一个到Memcache的长连接Memcache::replace//替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set)Memcache::set//向Memcache添加一个值,如果已经存在,则覆写Memcache::setCompressThreshold//对大于某一大小的数据进行压缩Memcache::setServerParams//在运行时修改服务器的参数下面是一些简单的用法实例,仅供参考:?php$mem=newMemcache;$mem-connect(127.0.0.1,12000);//Memcache::set方法有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。$mem-set('test','123',0,60);//Memcache::add方法的作用和Memcache::set方法类似,区别是如果Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直接覆写。$mem-add('test','123',0,60);//Memcache::get方法的作用是获取一个key值,Memcache::get方法有一个参数,表示key。$mem-get('test');//输出为'123'//Memcache::replace方法的作用是对一个已有的key进行覆写操作,Memcache::replace方法有四个参数,作用和Memcache::set方法的相同。$mem-replace('test','456',0,60);//Memcache::delete方法的作用是删除一个key值,Memcache::delete方法有两个参数,第一个参数表示key,第二个参数可选,表示删除延迟的时间。$mem-delete('test',60);?肖承湖PHP缓存应用:PHPMEMCACHE详解2010-01-2809:38:44来源:中国站长站综合【大中小】评论:0条我要投稿收藏本文分享至微博站长交易()帮站长赚钱虚拟主机评测+IDC导航=IDC123.COMMemcache函数库是在PECL(PHPExtensionCommunityLibrary)中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。在ubuntu上安装完运行的时候报错:/usr/local/memcached/bin/memcached:errorwhileloadingsharedlibraries:libevent-1.4.so.2:cannotopensharedobjectfile:Nosuchfileordirectory按照:《libeven、memcached、libmemcache安装》中的方法,使用:sudoln-s/usr/local
本文标题:php的Memcache方法介绍及应用实例
链接地址:https://www.777doc.com/doc-3401489 .html