This is an explanation of the video content.
 用技术延续对ACG的热爱
78

 |   | 

Go高性能-轻量级-键值对-内存数据库Blot的增删改查操作

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

78 服务端 ↦ Go开发技巧 __ 143 字
 Go开发技巧 #18