Releases: ledisdb/ledisdb
LedisDB Version 0.6
There are lots of changes since v0.5, Thanks again for all of you.
LedisDB Version 0.5
It takes a long time to release this version 0.5, with lots of changes and work for cluster.
Cluster
You can use xcodis + redis-failover + LedisDB to build up a distributed high availability key-value store, see here.
Added Feature
- Support large db index, you can change the databases configuration.
- Add
xlsort
,xssort
andxzsort
command. - Add
xscan
,xhscan
,xsscan
andxzscan
command. - Add
append
,bitcount
,bitpos
,bitop
,getbit
,getrange
,setbit
,setrange
,strlen
commands in KV type, - Add
xdump
andrestore
command. - Support
XSELECT db THEN command
to let select db and do command at same time.
Removed Feature
- Transaction, it's not used and I haven't heard any other people use it too. At the same time, this feature causes code ugly and not maintainable.
- Remove bitmap data structure, supply bit operations in KV type.
- Remove some unnecessary scan commands.
LedisDB Version 0.4
This version is gone on way for a long time but has lots of changes and optimizations. Hope you can enjoy it.
Caveat
- You must run
ledis-upgrade-ttl
to upgrade db data, I fixed a serious bug for TTL which may cause CPU 100%. - Replication is refactored for performance, old
binlog
data will not be used, you may start a new full replication.
Added feature
- Godep support. if godep is installed,
bootstrap
andmake
use will godep to build LedisDB. - Strong Consensus replication support, it may hit performance and degrade to async replication in some conditions.
- Many RocksDB configurations support, you can tune LedisDB + RocksDB by yourself.
- Lua Support, like Redis lua using but with a little limitation.
BLPOP
,BRPOP
,SETEX
,CONFIG REWRITE
support.
LedisDB version 0.3
LedisDB is a high performance NoSQL, which can be used for many scenarios like message push, statistics, cache, etc. It supplies Redis like API so you can use it easily or even instead of Redis. It also can be embedded in your own Go application.
Added Feature
- Support transaction
begin
,commit
androllback
, using LMDB or BoltDB. - Support Set data structure.
- Add some API like
zunionstore
,zinterstore
,info
, etc.
Bugfix
- Fix bitmap meta key encoding error.
LedisDB version 0.2
LedisDB is a high performance NoSQL like Redis, may be an alternative for Redis.
LedisDB supports some awesome features, below:
- Rich advanced data structure: KV, List, Hash, ZSet, Bitmap.
- Stores lots of data, over the memory limit.
- Various backend database to use: LevelDB, goleveldb, LMDB, RocksDB, BoltDB.
- Supports expiration and ttl.
- Redis clients, like redis-cli, are supported directly.
- Multi client API supports, including Go, Python, Lua(Openresty), Node.js.
- Easy to embed in Go application.
- Restful API support, json/bson/msgpack output.
- Replication to guarantee data safe.
- Supplies tools to load, dump, repair database.
- Linux, Mac OSX, Windows support.
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"
//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 "github.com/siddontang/ledisdb/ledis"
l, _ := ledis.Open(cfg)
db, _ := l.Select(0)
db.Set(key, value)
db.Get(key)
Benchmark
See benchmark for more.
Todo
See Issues todo
Notice
LedisDB now change the database saved path, it will save data to data_dir/leveldb
for LevelDB, data_dir/lmdb
for LMDB, and same for others.
So if you used LevelDB before, you must move old data_dir/data
to data_dir/leveldb
by hand.
LedisDB version 0.1
Features:
- Rich advanced data structure: KV, List, Hash, ZSet, Bitmap.
- Stores lots of data, over the memory limit.
- Supports expiration and ttl.
- Redis clients, like redis-cli, are supported directly.
- Multi client API supports, including Go, Python, Lua(Openresty).
- Easy to embed in Go application.
- Replication to guarantee data safe.
- Supplies tools to load, dump, repair database.