欢迎来到[自学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

竞彩大势:北雪平客场抢分 巴萨难敌热刺 一方主帅:希望在主场迎来首胜 要做到攻守平衡 国元期货简一交易05.15交易策略 [新浪彩票]足彩18049期盈亏指数:布城需设防有冷 CBA最让人绝望投手!瞎扔?任性?他就是能进 如何打动俄国美女?阿根廷“世界杯把妹指南”出招 俄罗斯一公墓遭野生棕熊洗劫 至少20具遗体被吃掉 教育部长:认清西方意识形态对国家主权的严重威胁 中超-黄紫昌连场破门 苏宁1-0一方积分榜超越恒大 押注美国10Y国债利率上升仓位创新高 今年前4月 山东劝返缉捕14名外逃经济犯罪嫌疑人 加图索:作为少帅我难免犯错 看看AC米兰怎么输的
中美贸易摩擦让巴拿马焦虑 外媒:或影响运河收入 不想被冷落要强行加戏?安倍被推测或赴美朝会谈地 世卫组织称500名叙利亚人中毒 俄叙:指责毫无根据 一加:超4万名用户信用卡信息泄露 已有安全补救措施 朝野党派论战说到缺氧?日本国会里有间吸氧室(图) 科学家对人类粪便的\"迷之爱恋\":肠道微生物五大谜团 王蔷横扫晋级印第安维尔斯赛16强 将战世界第一 王忠林任山东省委常委济南市委书记(图/简历) 打雪仗能成北京冬奥新项目么? 7人一队命中下场 木村翔特注杂草鞋打卫冕战 这次对手可不业余 台湾本土电商竞争失利 台媒:网络经济不能缺大陆 土葬7天强行起棺 江西上饶殡葬改革为何做这么绝?
4月15日起35岁以下紧缺专业大专生可直接落户杭州 美联储即将发布利率决定 黄金下跌多头未战先怯 百胜中国:美税改将造成约1.6亿美元的一次性支出 火星上发现液态水这些国家打算飞过去 包括中国 青海都兰盗墓案逃犯被抓 当地将对失职渎职者问责 无奈!AC米兰大腿已变毒瘤 从carry全场到独狼 特朗普:若民主党不支持美墨边境墙 政府将停摆 开盘:美股周四低开 科技板块领跌 中国热门APP抖音惹争议 西媒称其堪比21世纪鸦片 适合女性开的十五种店 白手起家创业点子 女人适合开什么店 白手起家创业做什么 AG亚游集团