LedisDB

Query Interface

Custom API HTTP / REST Command-line / Shell

LedisDB can be embedded in Go programs and programs can use its API to perform queries. LedisDB also provides a query interface in redis protocol called RESP(REdis Serialization Protocol), and can be queried via redis-cli. LedisDB has HTTP API support, too.

System Architecture

Shared-Nothing Embedded

LedisDB can be embedded in Go programs. You can also run LedisDB as independent servers. Each server does not share anything with others and only communicates with each other through network connection.

Data Model

Key/Value

LedisDB is a key/value store, but has rich data structures. In addition to simple key/value pair, it provides Hash, List, Set, ZSet.

Joins

Not Supported

As a key/value store, no join feature is provided in LedisDB.

Query Execution

Tuple-at-a-Time Model

LedisDB uses iterators in query processing.

Compression

Naïve (Page-Level)

LedisDB uses RocksDB, LevelDB or goleveldb(a LevelDB implementation in Go) as storage engine. You can enable their compression feature by configuration.

Storage Model

N-ary Storage Model (Row/Record)

LedisDB uses RocksDB, LevelDB or goleveldb(a LevelDB implementation in Go) as storage engine and thus inherits their storage model. Data are stored in the form of ordered key-value pairs.

Stored Procedures

Not Supported

LedisDB does not support stored procedures, but like Redis, it provides the capability to evaluate scripts using the bulit-in Lua interpreter. Scripts will be cached by LedisDB and can be invoked from the cache later. However, they are just cached rather than stored.

Storage Organization

Log-structured

LedisDB uses RocksDB, LevelDB or goleveldb(a LevelDB implementation in Go) as storage engine. Therefore, it inherits their Log-structured storage organization.

Storage Architecture

Disk-oriented In-Memory Hybrid

LedisDB uses RocksDB, LevelDB or goleveldb(a LevelDB implementation in Go) as storage engine and thus inherits their storage architecture. It also provides an option to use memory-backed storage (via goleveldb).

LedisDB Logo
Website

http://ledisdb.com/

Source Code

https://github.com/siddontang/ledisdb

Tech Docs

https://github.com/siddontang/ledisdb/wiki

Developer

Siddon Tang

Country of Origin

CN

Start Year

2014

Project Type

Open Source

Written in

Go

Supported languages

C, Go, JavaScript, Lua, Python

Derived From

LevelDB, RocksDB

Inspired By

SSDB

Compatible With

Redis

Operating Systems

Linux, OS X

Licenses

MIT