`
splayx
  • 浏览: 82746 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

leveldb学习一

    博客分类:
  • ldb
 
阅读更多

下了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 学习笔记1:布隆过滤器.doc

    LevelDB手册(LevelDB Handbook).pdf

    leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力。

    lsmdb:向leveldb学习并重写

    LSM数据库一个基于lsm树的数据库,从leveldb学习并重写它。特征更多评论更现代的cpp代码解决一些缺点

    基于Netty+SpringBoot+LevelDB实现的高性能、高可靠性的消息队列+源代码+文档说明

    1.高性能,基于netty实现数据通信+高效的kv数据库Leveldb存储,快的飞起! 2.支持多种消息类型,例如队列消息、主题消息、延时消息,还可以设置优先级。 3.系统体积小,整个系统才不到3M。 4.支持高并发。 ### 待...

    深度学习Caffe框架实战剖析视频课程(深度学习、机器学习、LeNet-5模型、MNIST数据集、CNN)

    目标一. 了解Caffe框架的环境配置以及LEVELDB和LMDB数据。 目标二. 学习并且掌握Caffe框架最基础的数据结构,明白其各结构之间的关系。 目标三. 阅读明白Caffe框架的源码,特别是其入口程序也就是Caffe.cpp的源码...

    深度学习Caffe框架实战剖析视频教程(深度学习、机器学习、LeNet-5模型、MNIST数据集、CNN)

    目标一. 了解Caffe框架的环境配置以及LEVELDB和LMDB数据。 目标二. 学习并且掌握Caffe框架最基础的数据结构,明白其各结构之间的关系。 目标三. 阅读明白Caffe框架的源码,特别是其入口程序也就是Caffe.cpp的源码...

    java实现的消息中间件之AcitveMQ详解,学习学习

    KahaDB他是默认的持久化策略,所有消息都会顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。是一个专门针对消息持久化的解决方案,它对典型的消息...

    cpp-EuclidesDB是一个多模型机器学习特征数据库它与PyTorch紧密结合

    EuclidesDB是一个多模型机器学习特征数据库,它与PyTorch紧密结合,并提供后端,用于在模型特征空间中包含和查询数据。用C 编写的性能; 使用protobuf进行数据序列化; 使用gRPC进行通信; 用于数据库序列化的...

    深度学习caffe–手写字体识别例程(五)—— convert_mnist_data.cpp文件详解

    我们在《深度学习caffe–手写字体识别例程(四)》中,用到了convert_mnist_data....它的作用是将mnist数据集转换为lmdb或leveldb格式的文件,以便用于深度学习的训练。这篇文章我们就来研究convert_mnist_data.bin这个

    NoSQL数据库技术实战

    本书既对NoSQL系统的理论进行了深入浅出的分析,又介绍了每一种NoSQL数据库在业界广泛应用的一个具体系统,理论与实战并重。 本书共分5篇,12章。涵盖的内容有:NoSQL与大数据简介、NoSQL的数据一致性、NoSQL的水平...

    castroom:播客搜索引擎

    因为学习索引不是该项目的目标 - 因此,它存在无法搜索特殊字符等问题:) 有时第一次搜索需要一些时间来响应,但之后它应该很快响应项目结构发现掌握协调所有crawler作业维护本地缓存(使用LevelDB)以防止多次抓取同...

    code-with-comments:阅读代码,对其进行注释

    介绍:tinyhttpd 是一个不到 500 行的超轻量型 Http Server,非常适合学习服务器工作原理 源码分析: 链接: MemoryPool 介绍:一个用 C++ 实现的简单内存池 源码分析: 链接: Webbench 介绍:Webbench是一个在...

    mnist数据集

    可用于caffe训练测试的mnist数据集。数据集包含四个文件,如下面所示: MNIST数据集及其文件解释 ...需要利用第4步生成的convert_mnist_data.exe把四个文件转换为caffe所支持的leveldb或lmdb文件。

    quanta:稀疏整数向量的分布式CRDT

    我将其构建为学习分布式系统的一种方式,因此您不必一定希望它适合在现实世界的系统中使用。 安装 当前,Quanta节点由LevelDB支持。 运行之前,请确保在您的平台上安装了LevelDB。 Quanta在Clojars上可用。 用法 ...

    caffe-parallel

    caffe * parallel是一个更快的深度学习框架,它是从BVLC / caffe(master分支)分叉的。( ,更多详细信息请访问项目主要成就是通过MPI进行数据并行化。 可以从以下下载此版本的caffe * parallel的源: : 此版本...

    udacity-blockchain-developer-nanodegree:迄今为止,Udacity区块链开发人员Nano学位的道路

    1.管理您的区块链身份 :white_heavy_check_mark: 学习在区块链上创建您的身份并与现有的Web服务进行交互。 2.建立自己的私人区块链 :white_heavy_check_mark: 利用Node.js和LevelDB构建自己的私有区块链。 3.带有...

    caffe-cpu版本常用安装库-utuntu16.04-anacond3---及常见错误

    caffe-cpu版本常用安装库,可用于apt-get安装失败时,直接源码编译安装; 常见错误文档用于解决一些常见错误,以及亲测有效的参考网页 包含caffe、boost_1_66_0、gflags-master、glog-0.3.3、leveldb-master、lmdb

    example-json-over-http

    HTTP 上的 JSON 示例使用 LevelDB 作为键/值存储快速开始 $ npm install$ npm start去做: 添加更多示例写一个更好的自述文件学习正确的 HTTP 休息服务器 API 设计

    积分管理系统java源码-resume:我的简历

    积分管理系统java源码 #简历 游宵 软件开发 ...熟悉互联网产品后台架构、性能优化、快速开发迭代,有一定的知识积累和学习兴趣: 1. 包括RDMBS sql优化,mysql sharding、缓存和异步队列、负载均衡和分布

    statto-backend-fs:用于文件系统的简单、缓慢且愚蠢的 statto 后端

    statto-后端-leveldb 用于文件系统 (fs) 的简单、缓慢且愚蠢的 statto 后端。 概要 请参阅示例文件: example/server.js 。 描述 这是一个示例 statto 后端,它实现了最基本的基础知识,作为您可以做什么和让某些...

Global site tag (gtag.js) - Google Analytics