| |
bbolt是BoltDB的一个分支,它是一个纯Go语言编写的嵌入式键值存储库。bbolt在BoltDB的基础上进行了优化和改进,提供了更好的性能和更低的内存占用。
package main
import (
"fmt"
"log"
"github.com/etcd-io/bbolt"
)
func main() {
// 打开或创建数据库文件
db, err := bbolt.Open("mydb.db", 0600, nil)
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 更新数据
err = db.Update(func(tx *bbolt.Tx) error {
// 打开或创建一个名为"mybucket"的桶(Bucket)
bucket, err := tx.CreateBucketIfNotExists([]byte("mybucket"))
if err != nil {
return err
}
// 存储键值对
err = bucket.Put([]byte("key1"), []byte("value1"))
if err != nil {
return err
}
// 修改键值对
err = bucket.Put([]byte("key1"), []byte("value2"))
if err != nil {
return err
}
// 删除键值对
err = bucket.Delete([]byte("key1"))
if err != nil {
return err
}
return nil
})
if err != nil {
log.Fatal(err)
}
// 读取数据
err = db.View(func(tx *bbolt.Tx) error {
bucket := tx.Bucket([]byte("mybucket"))
if bucket == nil {
return fmt.Errorf("Bucket not found")
}
value := bucket.Get([]byte("key1"))
fmt.Println("Value:", string(value))
return nil
})
if err != nil {
log.Fatal(err)
}
}
github地址:https://github.com/boltdb/bolt