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)

  • 相关阅读:
    区分DPI、分辨率(PPI)、图像的物理大小、像素宽度
    生成缩略图方法
    C#中调用Windows API的要点 .
    改变变量触发事件
    窗体异步示例
    Scroll滚动后发生的改变
    绘制不同颜色的文本图片
    字符串绘图片
    c#生成缩略图
    衔接UI线程和管理后台工作线程的类(多线程、异步调用)
  • 原文地址:https://www.cnblogs.com/tujia/p/5413020.html
Copyright © 2011-2022 走看看