LRU( Least Recently Used )。每个slab会维护一个队列,刚插入的数据在队头,经常get的数据也会移动到队头,这样较老或者访问较少的数据相对都留在队尾。该算法从队尾开始淘汰。当slab分配不到足够的内存时,首先 会检查队尾是否有过期数据 。如果有的话会直接将其覆盖为新的对象,如果没有,会开始淘汰队尾的对象。
Slab是一个内存块,它是memcached一次申请内存的最小单位 。Slab的大小固定为1M(1048576 Byte),一个 slab由若干个大小相等的chunk组成 。每个chunk中都保存了一个item结构体、一对key和value。