From 794bd743378c04ab142116d2089141f7731144de Mon Sep 17 00:00:00 2001 From: "suguo.yao" Date: Wed, 23 Mar 2022 17:05:30 +0800 Subject: [PATCH] init --- .gitignore | 4 ++++ go.mod | 8 ++++++++ main.go | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 .gitignore create mode 100644 go.mod create mode 100644 main.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2cb1bf8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +data/* +go.sum +*.exe +leveldb-demo \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..997ac85 --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module myschools.me/suguo/leveldb-demo + +go 1.18 + +require ( + github.com/golang/snappy v0.0.4 // indirect + github.com/syndtr/goleveldb v1.0.0 // indirect +) diff --git a/main.go b/main.go new file mode 100644 index 0000000..72f2a27 --- /dev/null +++ b/main.go @@ -0,0 +1,37 @@ +package main + +import ( + "fmt" + "log" + + "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/opt" +) + +func main() { + db, err := leveldb.OpenFile("./data", nil) + if err != nil { + log.Fatal(err) + } + defer db.Close() + for i := 0; i < 50; i++ { + if err := db.Put([]byte(fmt.Sprintf("hello %d", i)), []byte("a hello world."), nil); err != nil { + log.Fatal(err) + } + } + + ret, err := db.Has([]byte("hello 49"), &opt.ReadOptions{ + DontFillCache: false, + Strict: 0, + }) + if err != nil { + log.Fatal(err) + } + fmt.Println(ret) + + val, err := db.Get([]byte("hello 4"), nil) + if err != nil { + log.Fatal(err) + } + fmt.Println(string(val)) +}