内存碎片化
在不断malloc和free操作,会形成很小的内存的片段,我们无法继续利用。
Memcache管理内存方法
slab allocator机制
将内存划分为数个slab class仓库
各个仓库切分成不同尺寸的小块(chunk)
需要存放内容的时候,需要先判断内容的大小,为期选择合理的仓库存放
memcache保存着slab class在空闲时chunk列表,存放时根据列表进行分配
(最优策略 )
无法彻底解决内存浪费的问题,只能缓解。
增长因子:chunk块的大小比例。
Memcache删除机制
惰性删除(好处:减少cpu占用和检测成本)
- 过期不会立马删除,只是让用户看不见这个数据
- 当某个新值去占用他的位置时,当成chunk来使用
- 当get key的时候,先判断key是否过期,如果过期返回空并删除
LRU删除机制
LRU原理:当某个单位被请求的时候,维护一个计数器,通过计数器判断谁最少使用
限制
key:250字节
value:1M,能存储一般文本