我已经搜索了支持整数键和整数值的键值存储。 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/