下了leveldb的源码,感觉十分给力,代码质量都非常高,非常值得学习。
首先把它用起来先,没什么好说的,直接上代码吧。
#include <leveldb/db.h>
#include <string>
#include <iostream>
using namespace std;
void PrintStatus(leveldb::Status& status) {
if (status.ok()) cout << "OK!" << endl;
else cout << "NO!" << endl;
}
int main() {
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
string cmd, key, value;
while (cin >> cmd) {
if (cmd == "get") {
cin >> key;
status = db->Get(leveldb::ReadOptions(), key, &value);
PrintStatus(status);
if (status.ok()) cout << "value = " << value << endl;
} else if (cmd == "put") {
cin >> key >> value;
status = db->Put(leveldb::WriteOptions(), key, value);
PrintStatus(status);
} else if (cmd == "del") {
cin >> key;
status = db->Delete(leveldb::WriteOptions(), key);
PrintStatus(status);
} else {
cout << "No defined operation!" << endl;
}
cout << "=========================================" << endl;
}
return 0;
}
分享到:
相关推荐
LevelDB 学习笔记1:布隆过滤器.doc
leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力。
LSM数据库一个基于lsm树的数据库,从leveldb学习并重写它。特征更多评论更现代的cpp代码解决一些缺点
1.高性能,基于netty实现数据通信+高效的kv数据库Leveldb存储,快的飞起! 2.支持多种消息类型,例如队列消息、主题消息、延时消息,还可以设置优先级。 3.系统体积小,整个系统才不到3M。 4.支持高并发。 ### 待...
目标一. 了解Caffe框架的环境配置以及LEVELDB和LMDB数据。 目标二. 学习并且掌握Caffe框架最基础的数据结构,明白其各结构之间的关系。 目标三. 阅读明白Caffe框架的源码,特别是其入口程序也就是Caffe.cpp的源码...
目标一. 了解Caffe框架的环境配置以及LEVELDB和LMDB数据。 目标二. 学习并且掌握Caffe框架最基础的数据结构,明白其各结构之间的关系。 目标三. 阅读明白Caffe框架的源码,特别是其入口程序也就是Caffe.cpp的源码...
KahaDB他是默认的持久化策略,所有消息都会顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。是一个专门针对消息持久化的解决方案,它对典型的消息...
EuclidesDB是一个多模型机器学习特征数据库,它与PyTorch紧密结合,并提供后端,用于在模型特征空间中包含和查询数据。用C 编写的性能; 使用protobuf进行数据序列化; 使用gRPC进行通信; 用于数据库序列化的...
我们在《深度学习caffe–手写字体识别例程(四)》中,用到了convert_mnist_data....它的作用是将mnist数据集转换为lmdb或leveldb格式的文件,以便用于深度学习的训练。这篇文章我们就来研究convert_mnist_data.bin这个
本书既对NoSQL系统的理论进行了深入浅出的分析,又介绍了每一种NoSQL数据库在业界广泛应用的一个具体系统,理论与实战并重。 本书共分5篇,12章。涵盖的内容有:NoSQL与大数据简介、NoSQL的数据一致性、NoSQL的水平...
因为学习索引不是该项目的目标 - 因此,它存在无法搜索特殊字符等问题:) 有时第一次搜索需要一些时间来响应,但之后它应该很快响应项目结构发现掌握协调所有crawler作业维护本地缓存(使用LevelDB)以防止多次抓取同...
介绍:tinyhttpd 是一个不到 500 行的超轻量型 Http Server,非常适合学习服务器工作原理 源码分析: 链接: MemoryPool 介绍:一个用 C++ 实现的简单内存池 源码分析: 链接: Webbench 介绍:Webbench是一个在...
可用于caffe训练测试的mnist数据集。数据集包含四个文件,如下面所示: MNIST数据集及其文件解释 ...需要利用第4步生成的convert_mnist_data.exe把四个文件转换为caffe所支持的leveldb或lmdb文件。
我将其构建为学习分布式系统的一种方式,因此您不必一定希望它适合在现实世界的系统中使用。 安装 当前,Quanta节点由LevelDB支持。 运行之前,请确保在您的平台上安装了LevelDB。 Quanta在Clojars上可用。 用法 ...
caffe * parallel是一个更快的深度学习框架,它是从BVLC / caffe(master分支)分叉的。( ,更多详细信息请访问项目主要成就是通过MPI进行数据并行化。 可以从以下下载此版本的caffe * parallel的源: : 此版本...
1.管理您的区块链身份 :white_heavy_check_mark: 学习在区块链上创建您的身份并与现有的Web服务进行交互。 2.建立自己的私人区块链 :white_heavy_check_mark: 利用Node.js和LevelDB构建自己的私有区块链。 3.带有...
caffe-cpu版本常用安装库,可用于apt-get安装失败时,直接源码编译安装; 常见错误文档用于解决一些常见错误,以及亲测有效的参考网页 包含caffe、boost_1_66_0、gflags-master、glog-0.3.3、leveldb-master、lmdb
HTTP 上的 JSON 示例使用 LevelDB 作为键/值存储快速开始 $ npm install$ npm start去做: 添加更多示例写一个更好的自述文件学习正确的 HTTP 休息服务器 API 设计
积分管理系统java源码 #简历 游宵 软件开发 ...熟悉互联网产品后台架构、性能优化、快速开发迭代,有一定的知识积累和学习兴趣: 1. 包括RDMBS sql优化,mysql sharding、缓存和异步队列、负载均衡和分布
statto-后端-leveldb 用于文件系统 (fs) 的简单、缓慢且愚蠢的 statto 后端。 概要 请参阅示例文件: example/server.js 。 描述 这是一个示例 statto 后端,它实现了最基本的基础知识,作为您可以做什么和让某些...