内容简介:gkvdb v1.0正式版发布,本次更新内容如下: 由于针对的是KV键值对存储,底层数据结构从B+树调整为哈希表,并按照DRH(Deep-Re-Hash)深度哈希分区算法进行改进,性能得到极大提升; 不再支持数据范围遍历,取而代之...
gkvdb v1.0正式版发布,本次更新内容如下:
由于针对的是KV键值对存储,底层数据结构从B+树调整为哈希表,并按照DRH(Deep-Re-Hash)深度哈希分区算法进行改进,性能得到极大提升;
不再支持数据范围遍历,取而代之的是随机遍历;
去掉碎片文件,数据库启动时新增碎片检测功能,保证了数据文件空间的充分利用,并提高了数据写入和删除效率,但提高了启动时的时间开销;
新增文件空间整理器,支持对大型碎片进行自动迁移,并自动矫正数据文件大小;
新增缓存支持,提升整体数据库操作效率;
完成性能测试,并发布性能测试报告;
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))
文档
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
YES!产品经理(上、下册)
汤圆、老马 / 电子工业出版社 / 2011-9-1 / 128.00元
《YES!产品经理(套装上下册)》是一本融合了经管、工具和职场小说特点的图书,作者是国内产品经理咨询界最有实力的团队。 《YES!产品经理(套装上下册)》以职场小说的形式全面介绍产品管理、产品经理相关的知识,所有的问答均放置在设计好的101个情节中,同时每一个情节之间也都有相应的联系,读者能够从具体的情节走向中不但了解到产品管理的完整知识,而且能够深刻感受到一个产品经理的现实工作状态,从知识......一起来看看 《YES!产品经理(上、下册)》 这本书的介绍吧!