Mura Li
d77176912b
|
6 years ago | |
---|---|---|
.. | ||
config | ||
store | 6 years ago | |
.gitignore | ||
LICENSE | ||
README.md | ||
README_CN.md | ||
batch.go | ||
binlog.go | 6 years ago | |
binlog_util.go | ||
const.go | ||
doc.go | ||
dump.go | ||
info.go | ||
multi.go | ||
nodb.go | ||
nodb_db.go | ||
replication.go | ||
scan.go | ||
t_bit.go | 6 years ago | |
t_hash.go | ||
t_kv.go | ||
t_list.go | ||
t_set.go | ||
t_ttl.go | ||
t_zset.go | ||
tx.go | ||
util.go |
README.md
NoDB
Nodb is a fork of 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 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 github.com/lunny/nodb
Package Example
Open And Select database
import(
"github.com/lunny/nodb"
"github.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.
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).
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.
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.
n, err := db.ZAdd(key, ScorePair{score1, member1}, ScorePair{score2, member2})
ay, err := db.ZRangeByScore(key, minScore, maxScore, 0, -1)
Links
Thanks
Gmail: siddontang@gmail.com