summaryrefslogtreecommitdiffstats
path: root/vendor/gitea.com/lunny/nodb/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gitea.com/lunny/nodb/README.md')
-rw-r--r--vendor/gitea.com/lunny/nodb/README.md83
1 files changed, 83 insertions, 0 deletions
diff --git a/vendor/gitea.com/lunny/nodb/README.md b/vendor/gitea.com/lunny/nodb/README.md
new file mode 100644
index 0000000000..673424338a
--- /dev/null
+++ b/vendor/gitea.com/lunny/nodb/README.md
@@ -0,0 +1,83 @@
+# NoDB
+
+[中文](https://gitea.com/lunny/nodb/blob/master/README_CN.md)
+
+Nodb is a fork of [ledisdb](https://github.com/siddontang/ledisdb) and shrink version. It's get rid of all C or other language codes and only keep Go's. It aims to provide a nosql database library rather than a redis like server. So if you want a redis like server, ledisdb is the best choose.
+
+Nodb is a pure Go and high performance NoSQL database library. It supports some data structure like kv, list, hash, zset, bitmap, set.
+
+Nodb now use [goleveldb](https://github.com/syndtr/goleveldb) as backend to store data.
+
+## Features
+
++ Rich data structure: KV, List, Hash, ZSet, Bitmap, Set.
++ Stores lots of data, over the memory limit.
++ Supports expiration and ttl.
++ Easy to embed in your own Go application.
+
+## Install
+
+ go get gitea.com/lunny/nodb
+
+## Package Example
+
+### Open And Select database
+```go
+import(
+ "gitea.com/lunny/nodb"
+ "gitea.com/lunny/nodb/config"
+)
+
+cfg := new(config.Config)
+cfg.DataDir = "./"
+dbs, err := nodb.Open(cfg)
+if err != nil {
+ fmt.Printf("nodb: error opening db: %v", err)
+}
+
+db, _ := dbs.Select(0)
+```
+### KV
+
+KV is the most basic nodb type like any other key-value database.
+```go
+err := db.Set(key, value)
+value, err := db.Get(key)
+```
+### List
+
+List is simply lists of values, sorted by insertion order.
+You can push or pop value on the list head (left) or tail (right).
+```go
+err := db.LPush(key, value1)
+err := db.RPush(key, value2)
+value1, err := db.LPop(key)
+value2, err := db.RPop(key)
+```
+### Hash
+
+Hash is a map between fields and values.
+```go
+n, err := db.HSet(key, field1, value1)
+n, err := db.HSet(key, field2, value2)
+value1, err := db.HGet(key, field1)
+value2, err := db.HGet(key, field2)
+```
+### ZSet
+
+ZSet is a sorted collections of values.
+Every member of zset is associated with score, a int64 value which used to sort, from smallest to greatest score.
+Members are unique, but score may be same.
+```go
+n, err := db.ZAdd(key, ScorePair{score1, member1}, ScorePair{score2, member2})
+ay, err := db.ZRangeByScore(key, minScore, maxScore, 0, -1)
+```
+## Links
+
++ [Ledisdb Official Website](http://ledisdb.com)
++ [GoDoc](https://godoc.org/gitea.com/lunny/nodb)
+
+
+## Thanks
+
+Gmail: siddontang@gmail.com