Changelog History
-
v0.6 Changes
November 28, 2017There are lots of changes since v0.5, Thanks again for all of you.
-
v0.5 Changes
April 09, 2015๐ 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.
-
v0.4 Changes
November 23, 2014This 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.
- โฌ๏ธ You must run
-
v0.3 Changes
August 28, 2014๐ 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.
- ๐ Support transaction
-
v0.2 Changes
August 05, 2014๐ 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
todata_dir/leveldb
by hand. -
v0.1 Changes
July 24, 2014๐ 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.