我需要一个磁盘上的键值存储,不是太大或分布式。用例如下:
- 完整的数据库大小只有几 Gbs
- 键和值的大小都是恒定的
- 它是一个恒定的数据库。写完整个数据库后,我不需要再写任何条目(或很少写)
- 密钥将以不可预知的顺序访问
- 支持多个进程的并发读取是必须的。
- 必须非常快,因为读者将在一个紧密的循环中访问数百万个键。所以它应该尽可能地接近于在关联数组上循环(
STL's std::map
比如) - 理想情况下,它应该允许设置使用多少 RAM,通常它应该使用几百 Mbs
- 用 C 或 C++ 编写。现有的 python 扩展将是一个很大的优势,但我可以自己添加
所以cdb
和gdbm
看起来不错的选择,但只是想知道是否有更合适的选择。指向相关基准甚至相关轶事证据的指针将不胜感激。