在内存中使用整数键(而不是字符串哈希)的键/值存储

在内存中使用整数键(而不是字符串哈希)的键/值存储

我有大量integer => string值需要存储在小型服务器的 RAM 中。但是,membase 和 redis 等数据存储似乎会对键进行哈希处理,从而导致键的存储量比整数大得多。(我认为他们这样做是因为他们假设键将包含字符串,并且需要设置为扩展到多个节点)。

是否有任何使用整数密钥的密钥存储,以便我可以将几百万个对象塞入几兆字节的内存中?如果可能的话,我还希望它每隔一段时间刷新到磁盘。

答案1

所用的内存量将更多地取决于字符串值的大小,而不是键的大小,因为即使您将 32 位整数存储为字符串,它也最多占用 10 个字节。当然,这是存储空间的 2.5 倍,但在这种情况下您的值有多小?

我倾向于认为你是在错误的层面上进行优化;硬件很便宜,在问题上投入多一点的 RAM 可能比试图找到一个非常非常专业的数据存储更具成本效益(并且,很有可能,“找到”的意思是“自己编写和维护”)。

相关内容