Home

Awesome

LedisDB

Build Status codecov goreportcard

Ledisdb is a high-performance NoSQL database library and server written in Go. It's similar to Redis but store data in disk. It supports many data structures including kv, list, hash, zset, set.

LedisDB now supports multiple different databases as backends.

Features

Build from source

Create a workspace and checkout ledisdb source

git clone git@github.com:ledisdb/ledisdb.git
cd ledisdb

#set build and run environment 
source dev.sh

make
make test

Then you will find all the binary build on ./bin directory.

LevelDB support

RocksDB support

If the RocksDB API changes, LedisDB may not build successfully. LedisDB currently supports RocksDB version 5.1 or later.

Choose store database

LedisDB now supports goleveldb, leveldb, rocksdb, and RAM. It will use goleveldb by default.

Choosing a store database to use is very simple.

Flag command set will overwrite config setting.

Lua support

Lua is supported using gopher-lua, a Lua VM, completely written in Go.

Configuration

LedisDB uses toml as the configuration format. The basic configuration ./etc/ledis.conf in LedisDB source may help you.

If you don't use a configuration, LedisDB will use the default for you.

Server Example

//set run environment if not
source dev.sh

./bin/ledis -config=/etc/ledis.conf

//another shell
./bin/ledis cli -p 6380

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

//use curl
curl http://127.0.0.1:11181/SET/hello/world
→ {"SET":[true,"OK"]}

curl http://127.0.0.1:11181/0/GET/hello?type=json
→ {"GET":"world"}

Package Example

import (
    lediscfg "github.com/ledisdb/ledisdb/config"
    "github.com/ledisdb/ledisdb/ledis"
)

# Use Ledis's default config
cfg := lediscfg.NewConfigDefault()
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

Cluster support

LedisDB uses a proxy named xcodis to support cluster.

CONTRIBUTING

See [CONTRIBUTING.md] .

Benchmark

See benchmark for more.

Todo

See Issues todo

Client

See Clients to find or contribute LedisDB client.

Links

Caveat

Requirement

Related Repos

Donate

If you like the project and want to buy me a cola, you can through:

PayPal微信
[

Feedback