GitHub - lyramilk/leveldb at ttl
经常用leveldb,但是用leveldb模拟带过期时间的key比较麻烦,今天突发奇想把这个功能加到leveldb上面,发现还挺容易的,于是就改了一个出来。下面是用法。
leveldb::DB* db = nullptr;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
if (!status.ok()) {
std::cout << status.ToString() << std::endl;
return 1;
}
std::string value;
time_t now = time(NULL);
for (int i = 0; i < 86400; ++i) {
char buff[64];
int r = snprintf(buff, sizeof(buff), "key%d", i);
buff[r] = 0;
db->Put(leveldb::WriteOptions(), buff, "value", now + i);
}
leveldb::Iterator* it = db->NewIterator(leveldb::ReadOptions());
long long i = 0;
for (it->SeekToFirst(); it->Valid(); it->Next()) {
++i;
}
delete it;
std::cout << "数量" << i << std::endl;