A high performance NoSQL Database Server powered by Go
Go to file
siddontang cdb6b1cdd2 use iterator to read many consistently in api
for a read api, it not uses lock, so multi read in a api may cause some
unpredictable when something writes at same time.
2014-07-10 11:32:37 +08:00
client update test case for openresty(lua) 2014-07-09 17:29:49 +08:00
cmd update benchmark default port 2014-07-08 15:31:36 +08:00
doc fix param error 2014-07-08 22:05:50 +08:00
etc use our own leveldb 2014-06-19 17:19:40 +08:00
ledis use iterator to read many consistently in api 2014-07-10 11:32:37 +08:00
leveldb use iterator to read many consistently in api 2014-07-10 11:32:37 +08:00
server merge branch 'bin-feature' 2014-07-08 17:10:44 +08:00
.gitignore update ledis-py, added new tests 2014-07-01 10:40:56 +08:00
LICENSE Initial commit 2014-04-29 17:43:09 -07:00
README.md update doc 2014-07-10 09:29:34 +08:00
benchmark.md update document 2014-07-02 14:18:28 +08:00
bootstrap.sh bug fix go get 2014-07-07 16:47:29 +08:00
build_leveldb.sh refactor, support use embedded ledisdb 2014-05-15 14:19:48 +08:00
dev.sh refactor, support use embedded ledisdb 2014-05-15 14:19:48 +08:00

README.md

LedisDB

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.

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.

    I supply a simple shell to install leveldb and snappy, you can use:

      sh build_leveldb.sh
    

    It will default install leveldb at /usr/local/leveldb and snappy at /usr/local/snappy

  • Change LEVELDB_DIR and SNAPPY_DIR to real install path in dev.sh.

  • Then:

      . ./bootstap.sh 
      . ./dev.sh
    
      go install ./...
    

Run

./ledis-server -config=/etc/ledis.json

//another shell
ledis-cli -p 6380

ledis 127.0.0.1:6380> set a 1
OK
ledis 127.0.0.1:6380> get a
"1"

Lib

import "github.com/siddontang/ledisdb/ledis"
l, _ := ledis.Open(cfg)
db, _ := l.Select(0)

db.Set(key, value)

db.Get(key)

Replication

set slaveof in config or dynamiclly

ledis-cli -p 6381 

ledis 127.0.0.1:6381> slaveof 127.0.0.1:6380
OK

Benchmark

See benchmark.md for more.

Todo

  • Admin

GoDoc

GoDoc

Commands

Some server commands explaintions are here, others will add continuate.

Thanks

Gmail: cenqichao@gmail.com

Gmail: chendahui007@gmail.com

Feedback

Gmail: siddontang@gmail.com