A high performance NoSQL Database Server powered by Go
Go to file
siddontang 7a763da082 change configuration
Config struct now not includes other configs, but shows all

People can see configuration clearly
2014-07-23 07:55:40 +08:00
client add missing test for bitmap 2014-07-21 09:52:53 +08:00
cmd add missing command for CLI completion 2014-07-22 22:20:04 +08:00
doc Update command documents, 2014-07-16 16:57:44 +08:00
etc change configuration 2014-07-23 07:55:40 +08:00
ledis change configuration 2014-07-23 07:55:40 +08:00
leveldb use iterator to read many consistently in api 2014-07-10 11:32:37 +08:00
server change configuration 2014-07-23 07:55:40 +08:00
.gitignore Update command documents, 2014-07-16 16:57:44 +08:00
LICENSE Initial commit 2014-04-29 17:43:09 -07:00
Makefile add makefile 2014-07-20 19:03:00 +08:00
README.md update read me 2014-07-21 10:47:25 +08:00
benchmark.md update document 2014-07-02 14:18:28 +08:00
bootstrap.sh change configuration 2014-07-23 07:55:40 +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.

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).
  • Easy to embed in Golang application.
  • Replication to guarantee data safe.
  • Supplies tools to load, dump, repair database.

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.

    LedisDB supplies a simple shell to install leveldb and snappy:

      sh build_leveldb.sh
    

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

    LedisDB use the modified LevelDB for better performance, see here.

  • Set LEVELDB_DIR and SNAPPY_DIR to the actual install path in dev.sh.

  • Then:

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

Server Example

./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"

Package Example

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

db.Set(key, value)

db.Get(key)

Replication Example

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

See Issues todo

Thanks

Gmail: cenqichao@gmail.com

Gmail: chendahui007@gmail.com

Gmail: cppgohan@gmail.com

Gmail: tiaotiaoyly@gmail.com

Gmail: wyk4true@gmail.com

Feedback

Gmail: siddontang@gmail.com