Golang笔记

golang 基于bolt 做一个支持hash、zet 数据结构

bolt 是一个很简单的嵌入式数据库,在为服务中使用很方便,但它操作不够简洁。

youdb 是一个基于bolt 支持hashmap、zet 数据结构的简单嵌入式数据库。

使用例子:

package main

import (
	"fmt"
	"github.com/ego008/youdb"
)

func main() {
	db, err := youdb.Open("my.db")
	if err != nil {
		fmt.Println("open err", err)
		return
	}
	defer db.Close()

	// hash

	db.Hset("mytest", "key1", []byte("value1"))

	rs := db.Hget("mytest", "key1")
	if rs.State == "ok" {
		fmt.Println(rs.Data[0], rs.String())
	} else {
		fmt.Println("key not found")
	}

	dataMap := map[string][]byte{}
	dataMap["k1"] = []byte("12987887762987")
	dataMap["k2"] = []byte("abc")
	dataMap["k3"] = []byte("qwertyui")
	dataMap["k4"] = []byte("aaaa")
	dataMap["k5"] = []byte("aaaa555")
	dataMap["k6"] = []byte("aaaa556")
	dataMap["k7"] = []byte("77777")
	dataMap["k8"] = []byte("88888")

	db.Hmset("myhmset", dataMap)

	rs = db.Hmget("myhmset", []string{"k1", "k2", "k3", "k8"})
	if rs.State == "ok" {
		for _, v := range rs.Data {
			fmt.Println(v.Key, v.ValStr())
		}
	}

	fmt.Println(db.Hincr("num", "k1", 2))

	// zet

	db.Zset("mytest", "key1", 100)

	rs2 := db.Zget("mytest", "key1")
	if rs2.State == "ok" {
		fmt.Println(rs2.Int64())
	}

	fmt.Println(db.Zincr("num", "k1", 2))
}

项目地址 https://github.com/ego008/youdb 22

本文网址: https://golangnote.com/topic/191.html (转载注明出处)
关于GolangNote:记录在工作中使用golang 遇到、面临的相关问题及解决方法。如果你在这里获得一些知识或信息,解决你的编程问题,请考虑捐赠给不幸的人或者你喜欢的慈善机构,除捐赠外,种植树木、志愿服务或减少排碳的行为也很有益处。如果你有任何问题可以在下面 留言
Be the first to comment!
Captcha image
Relative Articles