zoukankan      html  css  js  c++  java
  • memcached内存管理及key value长度限制

    1)什么是内存碎片?
    内存是大小有限的资源。例如把内存比作一张小床,来了一个小伙伴,可以睡下,再来一个小伙伴也能睡下。现在两个人了,他们占了差不多的大小的位置(资源),位置还有剩下。然后再来一个小胖子,他的身形几乎是之前两个人的一倍,他要占掉一个很大的位置(资源),但没关系,小胖子还是可以睡得下!但小胖子睡下后,只剩下很小的一个空间(位置)了,再来一个最瘦的瘦子都睡不了。那空出来的一点位置就这样浪费了。这就是内存碎片!!

    内存是有限的,被多个程序应用占用,但内存不可能刚刚好使用完,总是有一小部分不能被使用,这就是内存碎片。

    2)memcached为了防止内存碎片,做了什么处理?
    memcached为了减少内存碎片,它把内存事先分割成固定大小的几个区(slab),第个区里再分割相同大小的块(chunk)。在使用memcached的添加缓存值时,它自动选择合适的chunk来储存信息,大的value用大的chunk,小的value用小的chunk。

    PS:slab的大小由 memcached能使用的内存和增长比例(growth factor,默认1.25)来决定。启动memcached时,分别可以使用-m和-f参数来设定
    PS2:memcached这样做只是能减少内存碎片,但还是会有内存碎片,内存碎片是不可以避免的

    3)memcached的key value长度限制

    key 长度不能超过255字符长度
    value 长度不能超过1024 * 1024字符长度(即 1M)

  • 相关阅读:
    文化课随笔
    微积分与无穷级数
    [康复计划]-数论基础
    [Codeforces]CF742(Div.2)A-E
    第一次个人编程作业的过程和想法
    第一次个人编程作业
    Python命令行参数及文件读出写入
    第一次个人编程作业
    第一次个人编程作业
    第一次博客作业
  • 原文地址:https://www.cnblogs.com/tujia/p/5413020.html
Copyright © 2011-2022 走看看