我已经搜索了支持整数键和整数值的键值存储。 LevelDB似乎是一个不错的选择,尽管我找不到有关是否支持整数值/键的任何信息

最佳答案

您可以在LevelDB中存储几乎所有内容。您可以通过 Slice 结构将不透明的数据片提供给LevelDB。这是一个例子:

int intKey = 256;
int intValue = 256*256;

Slice key((char*)&intKey, sizeof(int));
Slice value((char*)&intValue, sizeof(int));

db->Put(leveldb::WriteOptions(), key, value);

就是这样!

但是,需要注意的一件事是,虽然通常可以在LevelDB中存储整数(既作为键又作为值),但它们将通过BytewiseComparator进行排序,因此您的键必须支持按字节比较。这也意味着,如果您依赖于键的特定顺序,则必须注意系统的字节顺序。

您还可以通过 Comparator 接口(interface)编写自己的比较器,该接口(interface)将允许您替换默认的BytewiseComparator

关于database - 整数键/值可以存储在LevelDB中吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8804834/

10-09 13:43