爲什麼單個item的大小被限制在1M byte之內?
啊…這是一個大家經常問的問題!
簡單的回答:因爲內存分配器的算法就是這樣的。
詳 細的回答:Memcached的內存存儲引擎(引擎將來可插拔…),使用slabs來管理內存。內存被分成大小不等的slabs chunks(先分成大小相等的slabs,然後每個slab被分成大小相等chunks,不同slab的chunk大小是不相等的)。chunk的大小 依次從一個最小數開始,按某個因子增長,直到達到最大的可能值。
如果最小值爲400B,最大值是1MB,因子是1.20,各個slab的chunk的大小依次是:slab1 - 400B slab2 - 480B slab3 - 576B …
MEMCACHE 性能優化:http://tank.blogs.tkiicpp.com/category/programming/memcache/
------------------------------------------------------------------------