Memcached Slab上的所有项目分配是否均等?

问题描述

这是我对Memcached如何在内存中存储数据的基本理解。

在Memcached中,平板管理器将项目存储在大小通常为1MB的平板中。它根据那些项目的大小来决定要存储哪些平板。如果某物的值为129字节,它将存储在存储128字节-256字节项目的slab类中。

我的问题是:

  1. 如何将数据写到平板上?键值对也写在平板上还是仅写在值上?
  2. 平板是简单的数组还是129字节项目仅占用129字节+强制标志和元数据?
  3. 将项目写入平板时是否将其对齐以提高缓存性能
  4. 执行插入操作时,memcached如何快速找到板中的插槽?

编辑:为了更加清楚我的前两个问题,我们假设有一个键值对“ Hello”,“ World”和“ Goodbye”,“ Moon”。假设最大密钥长度为7,最大值为5。

让#表示一个空字节

  1. 每个键的空间分配长度和值均相同: 你好## WorldGoodbyeMoon#

  2. 每个值的空间分配长度都是相同的。密钥分别存储在哈希图中。 WorldMoon#

  3. Hashmap告诉我们该值的长度以及指向第一个字节的指针。因此平板电脑数据打包如下: 世界月亮

我的印象是2。但是我想检查一下我的理解。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)