我是靠谱客的博主 威武蓝天,这篇文章主要介绍golang使用rocksdb做数据持久化,现在分享给大家,希望可以做个参考。

一、导入

import “github.com/tecbot/gorocksdb”

二、创建和连接

bbto := gorocksdb.NewDefaultBlockBasedTableOptions()
bbto.SetBlockCache(gorocksdb.NewLRUCache(3 << 30))
opts := gorocksdb.NewDefaultOptions()
opts.SetBlockBasedTableFactory(bbto)
opts.SetCreateIfMissing(true)
db, err := gorocksdb.OpenDb(opts, "/path/to/db")

三、写入和获取

ro := gorocksdb.NewDefaultReadOptions()
wo := gorocksdb.NewDefaultWriteOptions()
// if ro and wo are not used again, be sure to Close them.
err = db.Put(wo, []byte("foo"), []byte("bar"))
...
value, err := db.Get(ro, []byte("foo"))
defer value.Free()
...
err = db.Delete(wo, []byte("foo"))

四、迭代器

ro := gorocksdb.NewDefaultReadOptions()
ro.SetFillCache(false)
it := db.NewIterator(ro)
defer it.Close()
it.Seek([]byte("foo"))
for it = it; it.Valid(); it.Next() {
    key := it.Key()
    value := it.Value()
    fmt.Printf("Key: %v Value: %vn", key.Data(), value.Data())
    key.Free()
    value.Free()
}
if err := it.Err(); err != nil {
    ...
}

五、过滤

filter := gorocksdb.NewBloomFilter(10)
bbto := gorocksdb.NewDefaultBlockBasedTableOptions()
bbto.SetFilterPolicy(filter)
opts.SetBlockBasedTableFactory(bbto)
db, err := gorocksdb.OpenDb(opts, "/path/to/db")

最后

以上就是威武蓝天最近收集整理的关于golang使用rocksdb做数据持久化的全部内容,更多相关golang使用rocksdb做数据持久化内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部