gkvdb v1.0 正式版发布,Go 语言开发的 KV 嵌入式数据库

栏目: 软件资讯 · 发布时间: 7年前

内容简介:gkvdb v1.0正式版发布,本次更新内容如下: 由于针对的是KV键值对存储,底层数据结构从B+树调整为哈希表,并按照DRH(Deep-Re-Hash)深度哈希分区算法进行改进,性能得到极大提升; 不再支持数据范围遍历,取而代之...

gkvdb v1.0正式版发布,本次更新内容如下:

  1. 由于针对的是KV键值对存储,底层数据结构从B+树调整为哈希表,并按照DRH(Deep-Re-Hash)深度哈希分区算法进行改进,性能得到极大提升;

  2. 不再支持数据范围遍历,取而代之的是随机遍历;

  3. 去掉碎片文件,数据库启动时新增碎片检测功能,保证了数据文件空间的充分利用,并提高了数据写入和删除效率,但提高了启动时的时间开销;

  4. 新增文件空间整理器,支持对大型碎片进行自动迁移,并自动矫正数据文件大小;

  5. 新增缓存支持,提升整体数据库操作效率;

  6. 完成性能测试,并发布性能测试报告

gkvdb 是 Go 语言开发的基于 DRH(Deep-Re-Hash)深度哈希分区算法 的高性能 Key-Value 嵌入式数据库。

安装

go get -u gitee.com/johng/gf
go get -u gitee.com/johng/gkvdb

使用

基本用法

import "gitee.com/johng/gkvdb/gkvdb"

// 创建数据库
db, err := gkvdb.New("/tmp/gkvdb", "test")
if err != nil {
    fmt.Println(err)
}

// 插入数据
key   := []byte("name")
value := []byte("john")
if err := db.Set(key, value); err != nil {
    fmt.Println(err)
}

// 查询数据
key   := []byte("john")
fmt.Println(db.Get(key))

// 删除数据
key   := []byte("john")
if err := db.Remove(key); err != nil {
    fmt.Println(err)
}

// 关闭数据库链接,让GC自动回收数据库相关资源
db.Close()

开启/关闭缓存

// 启用缓存
db.SetCache(true)

// 关闭缓存
db.SetCache(false)

特殊写入操作

// 无论缓存是否开启,直接写入数据到磁盘
key   := []byte("name")
value := []byte("john")
if err := db.SetWithoutCache(key, value); err != nil {
    fmt.Println(err)
}

键值对随机遍历

// 随机获取10条数据
fmt.Println(db.Items(10))

// 获取所有的键值对数据
fmt.Println(db.Items(-1))

// 获取所有的键键名
fmt.Println(db.Keys(-1))

// 获取所有的键键值
fmt.Println(db.Values(-1))

文档

  1. gkvdb的介绍及设计

  2. gkvdb 的性能测试及与 leveldb、boltdb 性能对比


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

零工经济

零工经济

Diane Mulcahy / 陈桂芳 / 中信出版集团股份有限公司 / 2017-11-1 / CNY 39.00

// 国内第一本讲述“零工经济”概念的图书! // 互联网时代,你的技能与兴趣可以与市场需求产生更佳的匹配! // 通过工作模式的转型,你的财务状况可以获得更多的灵活性与稳定性! 如果把当前的工作世界看作一把尺子,设想它一头是传统意义上由企业提供的职业阶梯,另一头是失业,那么两头之间范围广、种类多的工作选择便是零工经济。它包括咨询顾问、承接协定、兼职工作、临时工作、自由职业、个体......一起来看看 《零工经济》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具