深入Memcache内部(二)-item内存分配

1.Item数据格式

    Item是保存在chunk中的实际数据

    深入Memcache内部(二)-item内存分配_第1张图片

2.新建Item分配内存过程

快速定位slab classid
计算key+value+suffix+32结构体,如90byte
如果>1MB,无法存储丢弃
取最小冗余的slab class
如:有48,96,120,存90会选择96


按顺序寻找可用chunk
slot:检查slab回收空间slot里是否有剩余chunk
delete:delete时标记到slot
exptime:get时检查的过期对象标记到slot
end_page_ptr:检查page中是否有剩余chunk
memory:内存还有剩余则开辟新的slab
LRU: Slab内部扫描Item双向链表50次

你可能感兴趣的:(深入Memcache内部(二)-item内存分配)