你的位置:首页 > 软件开发 > 数据库 > memcached 高级机制

memcached 高级机制

发布时间:2015-11-01 21:01:08
memcached的高级机制memcached内存机制(1)我们知道操作系统对进程的处理方法,在多进程并发的操作系统中,程序的执行不可避免的会产生碎片。同样对于memcached,在存储value,key时也会出现同样的问题, memcached采用了一种叫做slab all ...

memcached的高级机制

memcached内存机制

(1)我们知道操作系统对进程的处理方法,在多进程并发的操作系统中,程序的执行不可避免的会产生碎片。同样对于memcached,在存储value,key时也会出现同样的问题, memcached采用了一种叫做slab alloction 的分配机制来尽量防止内存碎片化。下面来详解一下关于slab  alloction机制。

                                                                             memcached  高级机制

    如上图:

        假设我们的内存为10M,首先将10M的内存分为4块,我们可以得出每块的大小为2.5M,即上面绿色的部分(slab1),我们称每个slab叫做slab  class,  将第一

      块再继续分,将slab1分成每块100Byte的小块,(即上面蓝色的部分),我们称每个小的蓝色的块叫做chunk。以此类推,把每一个slab按此规律进行切割。比如:

      将slab2分成每个150Byte的chunk,把slab3分成每个250Byte的chunk,…………。

    举个栗子:

        >add  person  0   0    4

        >kobe

          STORED

      当成功存储后,kobe这个value会存储在slab1中的一个chunk中,当再来一个值是会继续放在刚才存储kobe的chunk 中;当存储一个130byte的value时,,会在       slab2里找到一个chunk存储进去。总之slab  alloction 机制会根据value的大小分配chunk。我们尽量减少内存碎片的数量,但这种情况是不可避免的。

 

    warning:

         Grow factor    <增长因子>

原标题:memcached 高级机制

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录