Memcached源码分析 
作者:Calix,转载请注明出处:http://calixwu.com
最近研究了一下memcached的源码,在这里系统总结了一下笔记和理解,写了几 篇源码分析和大家分享,整个系列分为“结构篇”和“源码篇”,建议先从结构篇开始看起,要...
作者:Calix,转载请注明出处:http://calixwu.com
最近研究了一下memcached的源码,在这里系统总结了一下笔记和理解,写了几 篇源码分析和大家分享,整个系列分为“结构篇”和“源码篇”,建议先从结构篇开始看起,要...
作者:Calix,转载请注明出处:http://calixwu.com
两年前在网易博客写了一系列关于CodeIgniter的源码分析,现今把它迁至新博客,主要是对core/目录下的组件的源码的个人理解。下面是导航: [流程篇] ...作者:Calix
本文在《Why size_t matters》文章的基础上进行翻译和重新组织,尽量用更通俗易懂的语言。
合理地使用siz...
作者:Calix
如果直接把memcached的源码从main函数开始说,恐怕会有点头大,所以这里以一句经典的“SET”命令简单地开个头,算是回忆一下memcached的作用,后面的结构篇中关于命令解析部分主要也是围绕着SET命令展开分...
作者:Calix
一)模型分析
memcached到底是如何处理我们的网络连接的?
memcached通过epoll(使用libevent,下面具体再讲)实现异步的服务器,但仍然使用多线程,主要有两种线程,分...
作者:Calix
一)上文
在上一篇线程模型的分析中,我们知道,worker线程和主线程都调用了同一个函数,conn_new进行事件监听,并返回conn结构体对象。最终有事件到达时,调用同一个函数event_handler...
作者:Calix
先再说明一下,我本次分析的memcached版本是1.4.20,有些旧的版本关于内存管理的机制和数据结构与1.4.20有一定的差异(本文中会提到)。
一)模型分析 在开始解剖memcached关于内存管理...
作者:Calix
//memcached.h //返回在item中data字段key的地址,即把指针指向key #define ITEM_key(item) (((char*)&((item)->data)) \ ...作者:Calix
memcached.c 由于代码太多,在此省略了部分代码,例如UPD连接,二进制协议,某些错误输出和调试输出等,建议从main函数开始看起。
#include "memcached.h" //尝试从sock...作者:Calix
/* * 文件开头先啰嗦几句: * * thread.c文件代表的是线程模块。但是你会看到这个模块里面有很多其它方法, 例如关于item的各种操作函数,item_alloc,item_remove,...作者:Calix
#include "memcached.h" #include <sys/stat.h> #include <sys/socket.h> #include <sys/signal.h>...