LevelDB Java&Go 实践
最近学习出现了一个分叉:levelDB,前进的路上总有意外,经过短暂学习已经掌握了基本使用,并没有阻碍太长时间。
今天就分享一下 levelDB API 在 Java & Go 两种语言中的基本使用。体验下来 levelDB 像是个简化版本的 Redis,如果作为本地数据库的话,还是非常好用的,特别是用到本地缓存的时候。官方给的使用场景是适合大量写入少量读取,特别适合做性能测试数据记录。以后有机会我会做一个基于 levelDB 的性能测试数据收集工具。
levelDB 简介
LevelDB 是由 Google 构建的键/值存储。它可以支持从字符串键到字符串值的有序映射。LevelDB 的核心存储架构是日志结构合并树(LSM),它是一种写优化的 B 树变体。它针对大型顺序写入而不是小型随机写入进行了优化。
PS:其实在使用依赖库进行 levelDB 操作的时候并不需要安装 levelDB,这个弯路阻碍了我将近一个小时。
Java
虽然说是 Java,但是 Groovy 也可以这么用,为了使更容易阅读,我只分享 Java 的使用。
依赖
Maven:
Gradle:
基本操作
打开一个数据库文件:
添加一个 key 和 value:
这里用到了org.iq80.leveldb.impl.Iq80DBFactory#bytes
这个方法,当然也可以自己封装一个方法。
获取一个 key 的 value:
返回值也是数组,还需要进一步转化成我们目标对象。
删除一个 key:
遍历数据库:
关闭数据库:
然后我们就能在当前目录下看到fun
目录下有一堆文件:后缀为 sst 以及 CURRENT、LOCK 等等。
Go
依赖
基础操作
基本操作
打开一个数据库文件:
添加一个 key 和 value:
这里建议自己封装一个方法。
获取一个 key 的 value:
返回值也是数组,还需要进一步转化成我们目标对象。
删除一个 key:
遍历数据库:
关闭数据库:
欢迎关注 FunTester,Have Fun ~ Tester !
版权声明: 本文为 InfoQ 作者【FunTester】的原创文章。
原文链接:【http://xie.infoq.cn/article/cdc1a03e98499215f1c5db3f0】。文章转载请联系作者。
评论