您的位置:首页 > 数据库 > Memcache

Memcached源码分析之item结构

2014-03-24 20:48 483 查看
item是Memcached中抽象实际数据的结构,我们分析下item的一些特性,便于后续Memcached的其他特性分析。

typedef struct _stritem {
struct _stritem *next;//item在slab中存储时,是以双链表的形式存储的,next即后向指针
struct _stritem *prev;//prev为前向指针
struct _stritem *h_next;//Hash桶中元素的链接指针
rel_time_t      time; //最近访问时间
rel_time_t      exptime;//过期时间
int             nbytes;//数据大小
unsigned short  refcount;//引用次数
uint8_t         nsuffix;    //不清楚什么意思?
uint8_t         it_flags;   //不清楚什么意思?
uint8_t         slabs_clsid;//标记item属于哪个slabclass下
uint8_t         nkey;       //key的长度
union {
uint64_t cas;
char end;
} data[];//真实的数据信息
} item;


其结构图如下所示:



即Item由两部分组成,item的属性信息和item的数据部分,属性信息解释如上,数据部分包括cas,key和真实的value信息,item在内存中的存储形式如下:



这个图画出了部分结构,还有Hash表的结构没有画出。



这里大概介绍了item的一些信息,后面我们会分析item插入Hash表等信息。

注:本篇博客的图片摘自:http://kenby.iteye.com/blog/1423989

                                               http://www.nosqlnotes.net/archives/222
                                               
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息