Go入门笔记40-leveldb相关的库
1、GoLevelDB
https://github.com/syndtr/goleveldb
功能较少,只有Get,Put,Delete,Interator几个功能
使用示例:
iter := db.NewIterator(nil, nil)
for iter.Next() {
key := iter.Key()
...
}
2、ledisdb
https://github.com/ledisdb/ledisdb
和SSDB类似,但是可以以文件打开方式运行
下面是ledisdb使用示例
package main
import (
"fmt"
lediscfg "github.com/ledisdb/ledisdb/config"
"github.com/ledisdb/ledisdb/ledis"
)
func main() {
cfg := lediscfg.NewConfigDefault()
l, _ := ledis.Open(cfg)
db, _ := l.Select(0)
db.FlushAll()
db.Set(([]byte)("a"), ([]byte)("123"))
db.Set(([]byte)("b"), ([]byte)("123"))
db.Set(([]byte)("c"), ([]byte)("123"))
db.Set(([]byte)("d"), ([]byte)("123"))
db.Set(([]byte)("e"), ([]byte)("123"))
keys1, _ := db.Scan(ledis.DataType(ledis.KV), nil, 10000, false, "")
for i := 0; i < len(keys1); i++ {
fmt.Printf(string(keys1[i]) + ",")
}
fmt.Printf("\n")
db.HSet(([]byte)("A"), ([]byte)("a1"), ([]byte)("1111"))
db.HSet(([]byte)("A"), ([]byte)("a2"), ([]byte)("2222"))
db.HSet(([]byte)("A"), ([]byte)("a3"), ([]byte)("3333"))
db.HSet(([]byte)("B"), ([]byte)("b1"), ([]byte)("1111"))
db.HSet(([]byte)("B"), ([]byte)("b2"), ([]byte)("2222"))
db.HSet(([]byte)("B"), ([]byte)("b3"), ([]byte)("3333"))
keys2, _ := db.Scan(ledis.DataType(ledis.HASH), nil, 10000, false, "")
for i := 0; i < len(keys2); i++ {
fmt.Printf(string(keys2[i]) + "\n")
keys3, _ := db.HScan(keys2[i], nil, 10000, false, "")
for j := 0; j < len(keys3); j++ {
fmt.Printf(string(keys3[j].Field) + ":" + string(keys3[j].Value) + ",")
}
fmt.Printf("\n")
}
fmt.Printf("\n")
}
输出结果
a,b,c,d,e,
A
a1:1111,a2:2222,a3:3333,
B
b1:1111,b2:2222,b3:3333,
3、SSDB
https://ssdb.io/zh_cn/
暂时还没用。
本博客是个人工作中记录,更深层次的问题可以提供有偿技术支持。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。