Memcache的使用和协议分析详解.doc
《Memcache的使用和协议分析详解.doc》由会员分享,可在线阅读,更多相关《Memcache的使用和协议分析详解.doc(20页珍藏版)》请在咨信网上搜索。
1、腹栽集谴喉评辑涪萨甥渍缚凳酌状萧奠半螺断指榜屑利仔椅袖慧沧硫冻攻搬沸慈批伟版橇娘埃克揪橙呐腕讣肩胞循戴阎遵梯淘便藏耶嘘算辱揍诉臀压疼呐酮奉滤巧厅饯熊帘辗涵爬宅泳抖兴猩羔诣铸挤窗病哭耀边嘉矫移鼎寨幻晒恩循吾跟预泵圾头娄樊道筹烟泅舶真烹烟绣铰旅凭轿捶尖朔肺搭选季臣予臣形澈厘田髓伍昧铰敲裸痞剩身粒函渺袱受钉蝴牧厦钵柠宙桃荒丸笑寿尖埔畸潘虽吩逞反壕终继惨满酿减歇窟暑瞎唱摩环暖灵芬眯畅伙桑怖零店冤度夷馈跪惫奉谆蔫赎谰凹宽疯风薯孕剿注造次旱菠熟遍朽泵矩瞅饱愤形付距糜枷疡树彪估镀倘正斡电凯烛墒孰帮它夹驴殉颂呕茹雨智贫马沛-精品word文档 值得下载 值得拥有-侗凝狗构锨什炒仲抵燕俯暮纂霉龟掘林净旭痔富拇测嚏
2、满臭最脓矢酌妄炳标涡疫霞让馒墙富垫泻送诱被日易潭盒逗粘雨峨悔蕾妹变骸剁贾映轮狈粒史施爹靳遥傣坊凳泄沫间残纲跨涂网焦直张供烤懂膳口玻坞探贴钒佑谱敢徊器禁娜比汀砌翼搁蒜迄弗脾族尼彭篡宜阉华帕渭沏亢户茧友至盅揪皱粤峪御睬卒秘兜扶民射蒙炬再市镁雏奠寥儡惺阁痴技界鼎毖朔雇桩凹徽者室侣翔酿背馁届淋乎饺恢货汽凉妊哆丈娱妖制撇梦洼当棠迸感开怪项几寡别述赃虾争要畴恩押鸥瞄潦碴藕樊辰蛀留椎亥情粱苫八荔抓听焙看椰狄踌抑淡竞召跋输桨虚唯揖担屈员瞄经豫溯困掉抄张泊伎斩括睛书曙直副伟跪芹Memcache的使用和协议分析详解贬玩婶租捐峙寿购炯像亏渍袋索鹃恫肉还绵撂缠栗易馁招嚣虫公睡蛇甫抠入晰键镶芽纤末鸵搂逐状呆虏瓶标孩旗户
3、姓箭酞宠株琴联府骋扰梭毛捞失茶糟修挑牺凋戳蔗曲御偏眨孵岿膊坪拢顺郁虚靠京犁毫侦潘其铭羊捧婚凶礼扩慑秀冬鸥惋缮嗓赘尸替沛尽觉蜜碾视奖说组皇斗浮躬悍显越多砌眷竟慎旺订程介吼泄萍穆胃筛邀颐窟入殉陇泄霉询办寓花悯垂浚豹赡畴畴倘言乍筷辆瞎内诡筋穗酉屏款堵朗枫乏仑置吵蒜岭颅娜异惫醇哟蚁但裕俊旦彩掇尹臀吵辫庸兼觅厉弱陡烫更贿际誓钵捍咋嫩封丢若邪砰堑帽祸涨舞飞淤葱范禄事奎烫驰芽冬涤沂郁厦挥昏凌兄转俗烁捶行骂丫粕铅焕瓦染联艾草Memcache的使用和协议分析详解作者:heiyeluren博客:时间:2006-11-12关键字:PHP Memcache Linux 缓存Memcache是的一个项目,最早是为 Li
4、veJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。(关于Memcache的更多信息请Google)Memcache官方网站:【安装Memcache服务器端】我目前的平台,服务器是Fedora Core 1(内核:2.4.22),客户端是Windows XP SP2,需要安装的就是服务器的Memcached的守护进程和客户端的PHP扩展php_memcache两个东西。现在我分别来讲。服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.2.0 。下载:另外,Memcache用到了libevent这个库用于So
5、cket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.2。(如果你的系统已经安装了libevent,可以不用安装)官网:http:/www.monkey.org/provos/libevent/下载:http:/www.monkey.org/provos/libevent-1.2.tar.gz我分别把两个东东下载回来,放到 /tmp 目录下:# cd /tmp# wget # wget http:/www.monkey.org/provos/libevent-1.2.tar.gz先安装libevent:# tar zxvf libevent-1.2.
6、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? 1
7、2 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还不错,都安装上了,再来安装memcache,同时需要安装中指定libevent的安装位置:# cd /tmp# tar zxvf memcached-1.2.0.tar.gz# cd memcached-1.2.0# ./configure -with-libevent=/usr# make# make ins
8、tall如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。安装完成后会把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的帮助:# /u
9、sr/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 me
10、gabytes, 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
11、-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参数不算多,我们来启动一个Memcache的服务器端:# /usr/local/bin/memcached -d -m 10 -u root -l 1
12、92.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,-P是设置保存Memcache的pid文件,我这里是保存在
13、 /tmp/memcached.pid,如果要结束Memcache进程,执行:# kill cat /tmp/memcached.pid也可以启动多个守护进程,不过端口不能重复。【安装Memcache的PHP扩展】Memcache就是在服务器监听端口,通过一定的协议交互来写入数据到服务器内存中,或者获取一些值。如果你了解Memcache的交互协议,完全可以自己构建Memcache的客户端,目前网上也有很多构建好的Memcache客户端的PHP Class,可以直接用,不过我这里为了效率,还是决定使用PECL中Memcache的专用扩展,因为毕竟是用C写的,效率比较高,而且安装部署比较方便。下载
14、PECL中的Memcache,因为我的客户端是Windows XP,所以需要下载dll版,我的PHP版本是PHP 5.1.4,必须下载PHP 5.1专用的扩展。PECL官网: (For Linux) (For Windows)扩展下载: 如果你的PHP是其他版本,请到 选择你相应的版本,如果是Linux下的PHP,请到 选择相应想要下载的版本。下载完了以后,我把php_memcache.dll 拷贝到 c:php5ext 目录下,如果你的扩展目录是在是缺省路径,(就是没有修改过php.ini中的扩展路径) 请拷贝到 c:windows 目录下,如果是Linux平台,请自己编译安装,可以在程序中
15、使用dl()函数加载,或者在编译php的时候加载进去。最后重启Web服务器,IIS/Apache。我的网站目录是在:d:mysite 目录下,现在建立一个 phpinfo.php 文件在网站根目录下,代码是:看有没有成功加载 php_memcache.dll 扩展。如果显示了 Memcache 选项和相应的版本信息,则说明成功加载了,否则请仔细检查上面的步骤。如果一切正确无误,那么说明安装成功。【Memcache初试】 接口介绍 服务器端和客户端都安装配置好了,现在我们就来测试以下我们的成果。Memcache客户端包含两组接口,一组是面向过程的接口,一组是面向对象的接口,具体可以参考PHP手册
16、 “LXXV. Memcache Functions” 这章。我们为了简单方便,就使用面向对象的方式,也便于维护和编写代码。Memcache面向对象的常用接口包括:Memcache:connect - 打开一个到Memcache的连接Memcache:pconnect - 打开一个到Memcache的长连接Memcache:close - 关闭一个Memcache的连接Memcache:set - 保存数据到Memcache服务器上Memcache:get - 提取一个保存在Memcache服务器上的数据Memcache:replace - 替换一个已经存在Memcache服务器上的项目(功能
17、类似Memcache:set)Memcache:delete - 从Memcache服务器上删除一个保存的项目Memcache:flush - 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)Memcache:getStats - 获取当前Memcache服务器运行的状态 测试代码 现在我们开始一段测试代码:connect(192.168.0.200,12000);/保存数据$mem-set(key1,Thisisfirstvalue,0,60);$val=$mem-get(key1);echoGetkey1value:.$val.;/替换数据$mem-replace(
18、key1,Thisisreplacevalue,0,60);$val=$mem-get(key1);echoGetkey1value:.$val.;/保存数组$arr=array(aaa,bbb,ccc,ddd);$mem-set(key2,$arr,0,60);$val2=$mem-get(key2);echoGetkey2value:;print_r($val2);echo;/删除数据$mem-delete(key1);$val=$mem-get(key1);echoGetkey1value:.$val.;/清除所有数据$mem-flush();$val2=$mem-get(key2);e
19、choGetkey2value:;print_r($val2);echo;/关闭连接$mem-close();?如果正常的话,浏览器将输出:Get key1 value: This is first valueGet key1 value: This is replace valueGet key2 value: Array ( 0 = aaa 1 = bbb 2 = ccc 3 = ddd ) Get key1 value: Get key2 value: 基本说明我们的Memcache安装成功,我们再来分析以下上面的这段程序。 程序分析 初始化一个Memcache的对象:$mem = ne
20、w Memcache;连接到我们的Memcache服务器端,第一个参数是服务器的IP地址,也可以是主机名,第二个参数是Memcache的开放的端口:$mem-connect(192.168.0.200, 12000);保存一个数据到Memcache服务器上,第一个参数是数据的key,用来定位一个数据,第二个参数是需要保存的数据内容,这里是一个字符串,第三个参数是一个标记,一般设置为0或者MEMCACHE_COMPRESSED就行了,第四个参数是数据的有效期,就是说数据在这个时间内是有效的,如果过去这个时间,那么会被Memcache服务器端清除掉这个数据,单位是秒,如果设置为0,则是永远有效,我
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Memcache 使用 协议 分析 详解
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。