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

河北:全省中小学国庆节前成立学生欺凌治理委员会 河北这个市年内或晋升特大城市 百天后将让你惊艳 驻坦桑尼亚使馆提醒中国公民守法 及时办居留许可 住建部长王蒙徽:每天上班要看一下各地房价 大乐透第18040期精品杀号:继续追逐3字开头 澳大利亚就业岗位增多 失业率不降反升 汶川地震十周年 这是最好的纪念 刘健:希望恒大能及时调整出低谷 冠军还是他们的 中央气象台预警:黄淮和东北将现暴雨强对流天气 后C罗时代按兵不动 皇马是要放弃巨星策略了? 九斗鱼实控人原旭霖失联 法定代表人正在咨询律师 阿根廷称炮击中国“非法捕捞船” 并追捕近8小时
进球大战土炮也开火 唐淼传球肖智鱼跃破恒大 国象候选人赛丁立人三连和 前棋王克拉姆尼克领跑 CBA赔率:主让3.5分!广东扳回一城挽回颜面 虎牙都上市了 斗鱼还会远么? 古巴载104人客机坠毁 至少3人获救但伤势严重 西南石油大学师生考察遇难 老师被网友质疑缺经验 日本70岁“老司机”开车逆行 致7车连环相撞被捕 朝鲜访问团将首次经陆路入韩 或乘“和平列车” 刘永富:贫困地区农民纯收入增幅高于全国农村农民 朝韩达成“满意共识” 中方:这是一件好事 吉林召开冬奥会表彰大会 武大靖当选优秀运动员 网络中立法案该不该保留?美国两院、白宫掐起来了
彭博社:陆奇出走 百度AI野心遭质疑 人社部又有大动作 事关你的养老金 动用原油储备压低油价或骑虎难下 特朗普虚张声势 海淀区政府率先使用人脸识别 进楼先“刷脸” Spotify定于4月3日纽交所上市 继续坚持免费增值… 日本海底发现1600万吨稀土矿 可供全球用数百年 瑞幸咖啡诉星巴克中国涉垄断已受理 星巴克暂未置评 对人对己双重标准 美媒:美国边倡弃核边扩核武库 警务用车也被“贴条”?交警:是正常的执法行为 过年摆地摊赚10万 今年开什么店好 不怕死想发财的兄弟进 月薪过万十大冷门职业 AG亚游集团