php的Memcache方法介绍及应用实例_第1页
php的Memcache方法介绍及应用实例_第2页
php的Memcache方法介绍及应用实例_第3页
php的Memcache方法介绍及应用实例_第4页
php的Memcache方法介绍及应用实例_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、使用Memcache在PHP中调试方法的介绍及应用如果我们在网络开发中,特别是大访问量的web项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用memcahce。首先我们必须要安装,接下来如何使用memcache,在这里介绍下在linux下安装和windows下安装如下及配置:一、linux下的Memcache安装:下载memcache的linux版本,注意memcached用libevent来作事件驱动,所以要先安装有libevent。安装pecl:memcache。用pecl命令行工具安装:peclinstallmemcache或直接从源码安装:phpize./configu

2、remakemakeinstall二、Windows下的Memcache安装:下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached在终端(也即cmd命令界面)下输入c:memcachedmemcached.exe-dinstall安装再输入:c:memcachedmemcached.exe-dstart启动。NOTE:以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。下载http:/ext.php/php_memcache.dll,请自己查找对应的php版本的文件在C:winntphp.ini加入一行ext

3、ension=php_memcache.dll重新启动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最大同时连接

4、数,默认是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数据将按照此

5、值设定的块大小进行转移。此值越小所需的额外网络传输越多。如果发现无法解释的速度降低,可以尝试将此值增加到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使用C

6、RC32算法,而fnv呗I表示使用FNV-1a算法。FNV-1a比CRC32速度稍低,但是散列效果更好。memcache.hash_function=crc32memcache也可以作为session的存储模块,具体参看:memcachePHP的session.save_handler.$memcache=newMemcache;$memcache-connect(localhost,11211)ordie(Couldnotconnect);3.$version=$memcache-getVersion();echoServersversion:.$version.n;6.$tmp_objec

7、t=newstdClass;$tmp_object-str_attr=test;$tmp_object-int_attr=123;10.$memcache-set(key,$tmp_object,false,10)ordie(Failedtosavedataattheserver);echoStoredatainthecache(datawillexpirein10seconds)n;13.$get_result=$memcache-get(key);echoDatafromthecache:n;16.17.var_dump($get_result);我们已经安装好了,也配置好了memcach

8、e,现在接下来如何调试memcache.来做个测试。先搞个表:createtablet(idchar(36)notnullprimarykey,usernamevarchar(20)notnull);插点数据:insertintotvalues(uuid(),Livia),(uuid(),Lucy),(uuid(),Sivia),(uuid(),david);写个简单脚本测试一下。connect(1,11211);$mem-set($sql,$test_key,MEMCACHE_COMPRESSED,600);print_r($mem-get($sql);?看看结果出来了。C:php-fd:/

9、lamp/web2/phpinfo.phpArray(0=Array(id=d8f1ec2a-c033-11dd-bd1a-002215c94322username=david)=Array(id=d8f1eb9e-c033-11dd-bd1a-002215c94322username=Sivia)=Array(id=d8f1ea9a-c033-11dd-bd1a-002215c94322username=Lucy)=Array(id=d8f1e658-c033-11dd-bd1a-002215c94322username=Livia)现在我们已经介绍Memcache安装,不再赘述。再次着重介

10、绍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值Memca

11、che:getExtendedStats/获取进程池中所有进程的运行系统统计Memcache:getServerStatus/获取运行服务器的参数Memcache:getStats/获取当前Memcache服务器运行的状态Memcache:getVersion/返回运行的Memcache的版本信息Memcache:increment/对保存的某个key中的值进行加法操作Memcache:pconnect/打开一个到Memcache的长连接Memcache:replace/替换一个已经存在Memcache服务器上的项目(功能类似Memcache:set)Memcache:set/向Memcach

12、e添加一个值,如果已经存在,则覆写Memcache:setCompressThreshold/对大于某一大小的数据进行压缩Memcache:setServerParams/在运行时修改服务器的参数下面是一些简单的用法实例,仅供参考:connect(,12000);Memcache:set方法有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。$mem-set(test,123,0,60);/Memcache:add方法的作用和Memcache:set方法类似,区别是如果Memcache:add方法的返回值为f

13、alse,表示这个key已经存在,而Memcache:set方法则会直接覆写。$mem-add(test,123,0,60);Memcache:get方法的作用是获取一个key值,Memcache:get方法有一个参数,表示key。$mem-get(test);输出为123Memcache:replace方法的作用是对一个已有的key进行覆写操作,Memcache:replace方法有四个参数,作用和Memcache:set方法的相同。$mem-replace(test,456,0,60);/Memcache:delete方法的作用是删除一个key值,Memcache:delete方法有两个参

14、数,第一个参数表示key,第二个参数可选,表示删除延迟的时间。$mem-delete(test,60);?肖承湖详解缓存应用:来源中国站长站综合【大中小】评论:条我要投稿收藏本文分享至微博站长交易()帮站长赚钱虚拟主机评测导航函数库是在中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,按照:否则不建议使用。在上安装完运行的时候报错:安装中的方法,使用:可以修正这个通过新得立安装的里面的“;”,重启模块,注销,调用出现的信息。ct);4.print_r($memcache-getStats();5./*6.*Array7.*(8.*pid=80529.*upti

15、me=920510.*time=120589842811.*version=1.2.512.*pointer_size=3213.*rusage_user=0.00800014.*rusage_system=0.00000015.*curr_items=116.*total_items=1717.*bytes=5718.*curr_connections=219.*total_connections=1520.*connection_structures=321.*cmd_get=922.*cmd_set=2323.*get_hits=524.*get_misses=425.*eviction

16、s=026.*bytes_read=67127.*bytes_written=85028.*limit_maxbytes=1048576029.*threads=130.*)31.*/32.?01.connect(localhost,11211)ordie(Couldnotconnect);04.$memcache-set(name,leo,0,30);05.if(!$memcache-add(name,susan,0,30)06.07.echosusanisexist;/显/示详解缓存应用:来源中国站长站综合【大中小】评论:条我要投稿收藏本文分享至微博站长交易(hpch)帮站长赚钱n虚拟主机

17、评测导航memcached的服务正式启动emcache一add加一个值,如果已经存在,则返回aeemcacheadd一添力e个可供使用的服务器地址emcache一关闭一个emcach对象emcachec一创建一个emcache对象memcachede一u控制调试功能emcachedec一山函寸保存的某个e中的值进行减法操作emcached删除一个e值emcache一清除所有缓存的数据emcache一获取一个e值emcachee一获取进程池中所有进程的运行系统统计emcacheee一e获取运行服务器的参数emcachee一返回服务器的一些运行统计信息emcachee一e返回运行的emcache!

18、勺版本信息emcache一飾保存的某个e中的值进行加法操作emcachepc一创建一个emcache!勺持久连接对象emcache一a对一个已有的e进行覆写操作emcache一添加一个值,如果已经存在,则覆写emcacheempe一对大于某一大朋的数据进行压缩emcacheee一e在运行时!修改服务器的参数建议用面向对象的方式来测试这个库:emcache方法的作用是返回运行的emcache的版本信息。MemcacheMemcachemalloc在第一个参数设置“cachedump”时使用的gegemap方法的作用是返回服务器的一些运行统计信息。方法有三个参数,第一个参数表示要求返回的类型:ee

19、cachedumpa第二个参数和第三个参数是emcacheee方法的作用是获取进程池中所有进程的运行系统统计。函数的作用是控制调试功能,前提是在编译的时候使用了-选项,否则这个函数不会有作用。方法的作用是添加一个可供使用的服务器地址,方法有个参数,除了第一个参数意外,其他都是可选的,第一个参数表示服务器的地址,第二个参数表示端口,第三个参数表示是否是一个持久连接,第四个参数表示这台服务器在所有服务器中所占的权重,第五个参数表示连接的持续时间,第六个参数表示连接重试的间隔时间,默认为15设置为-1表示不进行重试,第七个参数用来控制服务器的在线状态,第8个参数允许设置一个回掉函数来处理错误信息。方

20、法的作用是在运行时修改服务器的参数,方法有六个参数,方法少了第三和第四个参数。方法的作用是获取运行服务器的参数,两个参数分别表示的地址和端口。方法的作用是清除所有缓存的数据,但是不会削去使用的内存空间。方法的作用是对保存的某个中的值进行加法操作,方法的作用是对保存的某个中的值进行减法操作。高级缓存应用详解文章录入:责任编辑:高级缓存应用详解文章录入:责任编辑:【字体:小大】中,主要作按照:函数库是在用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。本人在上安装完运行的时候报错:安装中的方法,使用:可以修正这个通过新得立安装的模块,注销里面的“;”,重启,

21、调用出现的信息执行:connect(localhost,11211)ordie(Couldnotconnect);$version=$memcache-getVersion();1c,GechoServersversion:.$version.n;?connect(localhost,11211)ordie(Couldnotconnect);print_r($memcache-getStats();/*Array*(*pid=8052*uptime=9205方法的作用是返回运行的的版本信息。connect);true,*time=1205898428*version=1.2.5*pointer

22、_size=32*rusage_user=0.008000*rusage_system=0.000000*curr_items=1*total_items=17*bytes=57TOC o 1-5 h z*curr_connections=2*total_connections=15*connection_structures=3*cmd_get=9*cmd_set=23*get_hits=5*get_misses=4*evictions=0*bytes_read=671*bytes_written=850*limit_maxbytes=10485760*threads=1*)*/?conne

23、ct(localhost,11211)ordie(Couldnot$memcache-set(name,leo,0,30);if(!$memcache-add(name,susan,0,30)echosusanisexist;$memcache-replace(name,lion,0,300);echo$memcache-get(name);$memcache-delete(name,5);?addServer(16,11211);$memcache-setServerParams(16,11211,1,15,_callback_memcache_failure);方法的作用是返回运行的的版本

24、信息。方法的作用是返回运行的的版本信息。echo$memcache-getServerStatus(16,11211);?connect(localhost,11211);$memcache-set(test_item,8);$memcache-increment(test_item,4);echo$memcache-decrement(test_item,7);/显示5?的服务正式启动添加一个值,如果已经存在,则返回添加一个可供使用的服务器地址关闭一个对象创建一个对象控制调试功能对保存的某个中的值进行减法操作删除一个值清除所有缓存的数据获取一个值获取进程池中所有进程的运行系统统计获取运行服务

25、器的参数返回服务器的一些运行统计信息返回运行的对保存的某个创建一个对一个已有的的版本信息中的值进行加法操作的持久连接对象进行覆写操作添加一个值,如果已经存在,则覆写对大于某一大小的数据进行压缩在运行时修改服务器的参数建议用面向对象的方式来测试这个库:emcacheemcachee方法的作用是返回服务器的一些运行统计信息。e方法有三个参数,第一个参数表示要求返回的类型:eemancapcachedumpaem第二个参数和第三个参数是在第一个参数设置为“cachedump”时使用的。emcacheee方法白勺a作用是获取进程池中所有进程的运行系统统计。emcachec方法的作用是创建一个emcac

26、h对象。emcachepcec方法的作用是创建一个emcache的持久连接对象。emcachec方法的作用是关闭一个emcache对象。emcache方法的作用是添加一个值,emcache方法有四个参数,第一个参数是e,第二个参数是a,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。emcachea方法的作用和emcache方法类似,区别是如果emcachea方法的返回值为a,表示这个e已经存在,而emcache方法则会直接覆写。emcache方法的作用是获取一个e值,emcacheg方t有一个参数,表示e,emcacheep方ce法的作用是对一个已有的e进行

27、覆写操作,emcacheep方法有四个参数,作用和emcachee方法的相同。emcachede方法勺勺作用是删除一个e值,emcachede方法有两个参数,第一个参数表示e,第二个参数可选,表示删除延迟的时间。memcachedeu函数的作用是控制调试功能,前提是php在编译的时候使用了-eaede选项,否则这个函数不会有作用。方法的作用是添加一个可供使用的服务器地址,方法有个参数,除了第一个参数意外,其他都是可选的,第一个参数表示服务器的地址,第二个参数表示端口,第三个参数表示是否是一个持久连接,第四个参数表示这台服务器在所有服务器中所占的权重,第五个参数表示连接的持续时间,第六个参数表示

28、连接重试的间隔时间,默认为15设,置为-表示不进行重试,第七个参数用来控制服务器的在线状态,第8个参数允许设置一个回掉函数来处理错误信息。方法的作用是在运行时修改服务器的参数,方法有六个参数,方法少了第三和第四个参数。方法的作用是获取运行服务器的参数,两个参数分别表示的地址和端口。方法的作用是清除所有缓存的数据,但是不会削去使用的内存空间。方法的作用是对保存的某个中的值进行加法操作,方法的作用是对保存的某个中的值进行减法操作。缓存实现前言:在架构的站点中,本文重点从的角度去分析如何使论坛(或者类似的架构的程序)应对大访问量。同时给出一些使用去减轻压力的建议。其中很多数据是个人测试的结果,如有不同意见,敬请留言告之。另外由于个人思维的问题,行文比较跳跃,特此声明!系统分析:单纯的从的角度出发,单台的数据库负载到每天上亿次的操作(每秒大概次操作,然后乘以)应该不是非常困难的事情。按照这个数据也就是说一个单服务器的论坛来说可以跑到千万是不成问题的,我相信国内绝大部分的论坛都不可能做到每天千万的,但实际情况并不是如此。当论坛超过百万的时候一台早已经不堪重负了。就我手头的一些数据显示,目前的论坛的基本服务器架构是前面顶着,后面才是一台在撑着。这种架构中,服务器压力增大可以通过并行增加服务器解决,而压力却无处释放,在不考虑官方服务的情况下,我们通过合理的利用是可以达到减轻服务器负

温馨提示

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

评论

0/150

提交评论