2014-07-10 05:29:34 +04:00
# LedisDB
2014-05-22 04:52:38 +04:00
2014-07-10 05:13:55 +04:00
Ledisdb is a high performance NoSQL like Redis based on LevelDB written by go. It supports some advanced data structure like kv, list, hash and zset, and may be alternative for Redis.
2014-05-22 04:52:38 +04:00
2014-07-11 13:30:40 +04:00
## Features
+ Rich advanced data structure: KV, List, Hash, ZSet, Bit.
+ Uses leveldb to store lots of data, over the memory limit.
+ Supports expiration and ttl.
+ Redis clients, like redis-cli, are supported directly.
+ Multi client API supports, including Golang, Python, Lua(Openresty).
2014-07-13 15:56:46 +04:00
+ Easy to embed in Golang application.
2014-07-11 13:30:40 +04:00
+ Replication to guarantee data safe.
+ Supplies tools to load, dump, repair database.
2014-05-22 04:52:38 +04:00
## Build and Install
+ Create a workspace and checkout ledisdb source
mkdir $WORKSPACE
cd $WORKSPACE
git clone git@github.com:siddontang/ledisdb.git src/github.com/siddontang/ledisdb
cd src/github.com/siddontang/ledisdb
+ Install leveldb and snappy, if you have installed, skip.
2014-07-16 10:34:08 +04:00
LedisDB supplies a simple shell to install leveldb and snappy:
2014-05-22 04:52:38 +04:00
sh build_leveldb.sh
2014-07-21 06:46:11 +04:00
It will default install leveldb at /usr/local/leveldb and snappy at /usr/local/snappy.
2014-07-21 06:47:25 +04:00
LedisDB use the modified LevelDB for better performance, see [here ](https://github.com/siddontang/ledisdb/wiki/leveldb-source-modification ).
2014-05-22 04:52:38 +04:00
2014-07-16 10:34:08 +04:00
+ Set LEVELDB_DIR and SNAPPY_DIR to the actual install path in dev.sh.
2014-05-22 04:52:38 +04:00
+ Then:
. ./bootstap.sh
. ./dev.sh
go install ./...
2014-07-21 06:46:11 +04:00
## Server Example
2014-05-22 04:52:38 +04:00
./ledis-server -config=/etc/ledis.json
2014-06-12 11:56:04 +04:00
//another shell
2014-06-22 17:05:52 +04:00
ledis-cli -p 6380
2014-06-12 11:56:04 +04:00
2014-06-22 17:05:52 +04:00
ledis 127.0.0.1:6380> set a 1
2014-06-12 11:56:04 +04:00
OK
2014-06-22 17:05:52 +04:00
ledis 127.0.0.1:6380> get a
2014-06-12 11:56:04 +04:00
"1"
2014-07-21 06:46:11 +04:00
## Package Example
2014-06-12 11:56:04 +04:00
import "github.com/siddontang/ledisdb/ledis"
2014-07-04 11:45:23 +04:00
l, _ := ledis.Open(cfg)
2014-06-12 11:56:04 +04:00
db, _ := l.Select(0)
db.Set(key, value)
db.Get(key)
2014-07-21 06:46:11 +04:00
## Replication Example
2014-06-12 11:56:04 +04:00
2014-07-16 10:34:08 +04:00
Set slaveof in config or dynamiclly
2014-06-12 11:56:04 +04:00
2014-06-22 17:05:52 +04:00
ledis-cli -p 6381
2014-06-12 11:56:04 +04:00
2014-06-22 17:05:52 +04:00
ledis 127.0.0.1:6381> slaveof 127.0.0.1:6380
2014-06-12 11:56:04 +04:00
OK
2014-05-22 04:52:38 +04:00
## Benchmark
See benchmark.md for more.
## Todo
2014-07-21 06:46:11 +04:00
See [Issues todo ](https://github.com/siddontang/ledisdb/issues?labels=todo&page=1&state=open )
2014-05-22 04:52:38 +04:00
2014-06-30 07:48:09 +04:00
2014-07-16 12:58:03 +04:00
## Links
2014-06-30 07:48:09 +04:00
2014-07-16 12:58:03 +04:00
+ [Official Website ](http://ledisdb.com )
2014-07-16 12:59:59 +04:00
+ [Author's Chinese Blog ](http://blog.csdn.net/siddontang/article/category/2264003 )
2014-07-16 12:59:42 +04:00
+ [GoDoc ](https://godoc.org/github.com/siddontang/ledisdb )
2014-07-16 12:59:59 +04:00
+ [Server Commands ](https://github.com/siddontang/ledisdb/wiki/Commands )
2014-06-30 07:48:09 +04:00
2014-06-12 11:58:50 +04:00
## Thanks
2014-07-02 06:23:13 +04:00
Gmail: cenqichao@gmail.com
2014-07-09 05:33:44 +04:00
2014-07-02 06:23:13 +04:00
Gmail: chendahui007@gmail.com
2014-06-12 11:58:50 +04:00
2014-07-21 06:46:11 +04:00
Gmail: cppgohan@gmail.com
Gmail: tiaotiaoyly@gmail.com
Gmail: wyk4true@gmail.com
2014-07-16 10:34:08 +04:00
2014-05-22 04:52:38 +04:00
## Feedback
2014-07-16 12:59:59 +04:00
Gmail: siddontang@gmail.com