package main import ( "fmt" "github.com/boltdb/bolt" ) var ( db *bolt.DB bucket []byte ) const dbname = "module.db" func init() { //创建bolt数据库本地文件 dbc, err := bolt.Open(dbname, 0600, nil) //初始化bucket bucket = []byte("demoBucket") if err != nil { fmt.Println("open err:", err) return } else { db = dbc } //创建bucket db.Update(func(tx *bolt.Tx) error { _, err := tx.CreateBucket(bucket) return err }) } //把数据插入到bolt数据库中,相当于 redis 中的set命令 func insert(key, value string) { k := []byte(key) v := []byte(value) db.Update(func(tx *bolt.Tx) error { b := tx.Bucket(bucket) err := b.Put(k, v) return err }) } //读取一条数据 func read(key string) string { k := []byte(key) var val []byte db.View(func(tx *bolt.Tx) error { b := tx.Bucket(bucket) val = b.Get(k) return nil }) return string(val) } //遍历指定的bucket中的数据 func fetchAll(buk []byte) { db.View(func(tx *bolt.Tx) error { b := tx.Bucket(buk) cur := b.Cursor() for k, v := cur.First(); k != nil; k, v = cur.Next() { fmt.Printf("key is %s,value is %s\n", k, v) } return nil }) } func main() { defer db.Close() insert("hello", "Hello World,This is Bolt Database11..") insert("hello2", "Hello World,This is Bolt Database22..") fmt.Println(read("hello")) fmt.Println(read("hello2")) insert("news1", "this is a title.") fetchAll(bucket) }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
奔跑吧 Linux内核
张天飞 / 人民邮电出版社 / 2017-9-1 / CNY 158.00
本书内容基于Linux4.x内核,主要选取了Linux内核中比较基本和常用的内存管理、进程管理、并发与同步,以及中断管理这4个内核模块进行讲述。全书共分为6章,依次介绍了ARM体系结构、Linux内存管理、进程调度管理、并发与同步、中断管理、内核调试技巧等内容。本书的每节内容都是一个Linux内核的话题或者技术点,读者可以根据每小节前的问题进行思考,进而围绕问题进行内核源代码的分析。 本书内......一起来看看 《奔跑吧 Linux内核》 这本书的介绍吧!