问题描述
这是我对Memcached如何在内存中存储数据的基本理解。
在Memcached中,平板管理器将项目存储在大小通常为1MB的平板中。它根据那些项目的大小来决定要存储哪些平板。如果某物的值为129字节,它将存储在存储128字节-256字节项目的slab类中。
我的问题是:
- 如何将数据写到平板上?键值对也写在平板上还是仅写在值上?
- 平板是简单的数组还是129字节项目仅占用129字节+强制标志和元数据?
- 将项目写入平板时是否将其对齐以提高缓存性能?
- 执行插入操作时,memcached如何快速找到板中的插槽?
编辑:为了更加清楚我的前两个问题,我们假设有一个键值对“ Hello”,“ World”和“ Goodbye”,“ Moon”。假设最大密钥长度为7,最大值为5。
让#表示一个空字节
-
每个键的空间分配长度和值均相同: 你好## WorldGoodbyeMoon#
-
每个值的空间分配长度都是相同的。密钥分别存储在哈希图中。 WorldMoon#
-
Hashmap告诉我们该值的长度以及指向第一个字节的指针。因此平板电脑数据打包如下: 世界月亮
我的印象是2。但是我想检查一下我的理解。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)