欢迎来到[自学php网] ①群 AG亚游集团

AG亚游集团 > 操作系统 > apache教程 >

memcache分析调试|memcache-Apache教程

来源:自学PHP网 ?? 时间:2014-10-17 09:09?作者:

[导读] 1.关于本文档 本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读. 一个星期时间的 工作 ,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准...

1.关于本文档
       本文档所有的分析都是在1.2版本之上,偶尔会提到比较1.1版本.其他版本没有阅读.
        一个星期时间的工作,不可能对memcache有很深刻的分析.文档本身的目的在于为以后的研究准备一个总结资料.刚接触memcache时,对其设计分布式的思路感到十分欣喜,因为在中间层以极小的代价实现简单分布式无疑成为一些要求不是很高的分布式应用的一个很好的设计思路,这个特性决定memcache本身在分布式应用中,单个结点之间是Server相互独立,不会存在同级之间的通信.一个结点拒绝访问,如果没有相应的冗余策略,将导致该结点的数据丢失.同时,memcache的Server结点对数据的存储操作都是在内存中完成,而memcache对内存分配和回收采用了曾在SunOS实现的分页机制,预分配一个大内存(默认是 <= 200M),然后分页切块,对每个数据对象的存储便在所切的块中进行操作.这个特点决定memcache没有设计到任何磁盘IO操作,那么所有的关于memcache的性能瓶颈都在网络通信部分,而memcache正是将这一部分抛给了一个中间层完成.可以说真正的memcache是一个单进程,单线程,监听某个网络端口的daemon(或非daemon),是一个轻量级的应用服务进程.这些特性决定了memcache的应用范围,性能瓶颈和优化策略.
       本文档的目的也就诣在探讨查看memcache源码后的一些观点.
       文档分为六个部分:
       1.  文档介绍.主要介绍文档组织和文档目的.
       2.  memcache的代码分析.分析memcache的源代码,指出核心的数据结构和算法.
       3.  memcache的使用优化.分析memcache的特点,结合实际应用给出一些优化memcache的策略.
       4.  memcache的测试分析.初略测试了memcache,给出优化方案的例证.
       5.  memcache的中间层客户端编写.分析memcache的通信协议,模拟编写了一个简单的memcache中间层客户端.
       6.  libevent简介.memcache采用的是libevent进行网络IO处理,libevent作为一种新的网络IO方式以高效的方法(epoll/kqueue)组织IO.
       其中第六章可以不看.对于系统管理员,需要查看第一,三,四部分;进行二次开发的程序员可以查看第一,二,四,五,六部分.

2.memcache代码分析
       1. memcache main流程

图2.1 memcache main流程
       libevent的事件处理机制在main进程里体现在处理网络IO上.在TCP memcache的服务流程里,也是利用event处理事件的.
       2. memcache服务流程(TCP)

图2.2 memcache服务流程图(TCP)
       3. memcache状态转换和通信协议处理
 
图2.3 memcache状态转换和通信协议处理
       需要说明的是,这里需要排除所有出错处理.很显然,不管是哪种操作下,一旦出错,信息需要通过conn_write状态往client写入出错信息的,那么在string_out时,必定转入conn_write状态.
       而且,很多细节也没有在流程图中给出,如统计信息的处理,超时后get操作时删除等等.对于在memcache协议中定义的其他操作,如stats,version,quit,flush_all,own,disown等等由于使用很少,在流程中没有详细给出,可以查看源代码.
       4.  memcache核心数据结构
               1. item结构
       item是存储在memcache的key-value对的抽象.由于组织item存放是按照LRU算法组织的.那么在其中有几个成员在修改源代码时必须注意,time是最近访问时间.exptime是item消亡时间.item是一个双向列表.同时还挂在一个Hash table上.

 

 

最新文章

点击排行

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有AG亚游集团

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

美国前财长:未来几年经济或衰退 且比上次更持久 台媒刊文:台若再不与大陆谈统一 将失一国两制机会 湖北高速逃费车或被拉黑禁行 一小车1年逃费488次 9岁女孩阻止插队被打是因脚踢孕妇在先?警方回应 中国铁塔据悉融资69亿美元 势为两年来全球最大IPO 伊拉克中央政府解除库尔德自治区国际航班禁飞令 裴蕊娇创女子步枪三姿新纪录 曾夺得世青赛金牌 安徽“五周杀人案”背后的五个家庭:一切都改变了 上百位企业家挺柳传志:称联想是民族产业的一面旗帜 广州塔到底多高?2场5球平恒大队史 1数据前无古人 研究:去年全球App下载超1750亿次 营收超860亿… 国际象棋版AlphaZero出来了 还开源了Keras…
淘宝禁售规范变更:全面禁售虚拟货币 重点打击ICO Facebook因滥用数据调查已关停超200个应用程序 韩国爆发最大规模女性示威 抗议查处案件男女有别 中超金靴赔率:武磊第一非侥幸 扎神巴坎布紧追 联合国关注叙利亚西北部战事:1个月致20万人逃亡 海南环保厅长回应“人满为患”:游客不是多是不够 安倍前下属被指帮助加计学园获许可 本人出面否认 开阳拉力赛次日:斯巴鲁包揽前二 韩寒失误退赛 以赊销杀入消费金融 寺库流量变现仍待突破 进食障碍患者的“毒瘾”:暴食后硬要用手扣吐出来 英俄因俄前双面间谍中毒案开撕 谁的筹码比较大? SpaceX今年第7次发射 向国际空间站运2.63吨物…
胡福明谈《实践是检验真理的唯一标准》:时代产物 沪媒:徐根宝不会怨天怨地怨人 还会有更多武磊 途牛回应“游客申请马代游退全款遭拒”:已退改507人 在美国退役军人什么待遇?1811年便有军人庇护所 日本森友学园丑闻再发酵 舆论要求政府说明并追责 东软刘积仁:智能商业背后的核心是连接和融合 女子被误诊十年:肺部严重损害 康复治疗或伴余生 河北张家口公安局副局长王守成涉违纪被审查 我驻澳武官:中澳今年将举行联合演训、防务战略磋商 不怕死想发财的兄弟进 白手起家做什么好 没钱怎么创业 谁需要钱我借他100万 AG亚游集团