memcached实战系列(六)理解Memcached的数据存储方式
来源:互联网 发布:wear it on 编辑:程序博客网 时间:2024/05/18 14:26
Memcached的数据存储方式被称为Slab Allocator,其基本方式是:
1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题。启动参数的时候配置进去的不懂得可以参考memcached启动参数配置章节。
分配给Slab的内存空间被称为Page,默认是1M。一个Slab下可以有多个Page。
2:然后把一个Page分成很多个chunk块,chunk块是用于缓存记录的空间。Chunk的
大小是先有一个基本值,然后根据增长因子来增大。每一个page中chunk是相等的空间大小。
3:slab class:内存区类别(48byte-1M),每个类别有一个slab classId,图左边的,类似索引方便管理记录。
4:Memcached里面保存着slab内空闲的chunk列表,当收到要保存的item的时候,它
会根据item的大小,去选择一个最合适的slab,然后找到空闲的chunk,把数据存放进去。
比如我们存放120字节的值,有个chunk值为100还有一个chunk是130,存到100的chunk是没有足够空间存储的,存储到130这个chunk是可以的,最近的原则存储。但是存储到130chunk里面,也有一个问题就是浪费了10字节内存。所以合理的分配空间也是很重要的。
启动的时候添加参数:-vv注意小写的不是大写的。
./memcached -d -m 10 -u root -l 0.0.0.0 -p 18887-c 256 -P /tmp/memcached.pid -vv
如下图所示:
上面的图也印证了前面说的原理。确实是这样分配的。
1 0
- memcached实战系列(六)理解Memcached的数据存储方式
- memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程
- memcached之理解memcached的内存存储
- memcached之理解memcached的内存存储
- [Memcached]理解 Memcached 的内存存储
- Memcached(3)-------Memcached的内存存储理解
- memcached-2-理解memcached的内存存储
- 理解memcached的内存存储
- memcached完全剖析系列教程–2.理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面剖析–2.理解 memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- memcached全面解析--理解memcached的内存存储
- memcached全面剖析–2.理解memcached的内存存储
- hdu 5439 Ponds(长春网络赛——拓扑排序+搜索)
- Android学习笔记(Google官方教程)(三)
- 机器学习在金融大数据风险建模中的应用
- 16 个 Linux 服务器监控命令
- 算法初级_3 :函数与递归
- memcached实战系列(六)理解Memcached的数据存储方式
- 如何将MyEclipse10由D盘移动到C盘
- 信号signal
- 关于unicode的学习
- adb 命令
- 2013年山东省第四届ACM大学生程序设计竞赛:Rescue The Princess
- 日期类
- 结构-行为-样式-Angularjs-ngSanitize
- Mac上的抓包工具Charles