我是靠谱客的博主 威武蓝天,最近开发中收集的这篇文章主要介绍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做数据持久化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部