add diff redid doc

This commit is contained in:
siddontang 2014-09-09 10:01:46 +08:00
parent 3354399d9b
commit 23452f06c7
2 changed files with 61 additions and 1 deletions

View File

@ -12,7 +12,7 @@ LedisDB now supports multiple databases as backend to store data, you can test a
+ Supports transaction using LMDB or BotlDB. + Supports transaction using LMDB or BotlDB.
+ Supports lua scripting. + Supports lua scripting.
+ Supports expiration and ttl. + Supports expiration and ttl.
+ Redis clients, like redis-cli, are supported directly. + Supports using redis-cli directly.
+ Multiple client API supports, including Go, Python, Lua(Openresty), C/C++, Node.js. + Multiple client API supports, including Go, Python, Lua(Openresty), C/C++, Node.js.
+ Easy to embed in your own Go application. + Easy to embed in your own Go application.
+ Restful API support, json/bson/msgpack output. + Restful API support, json/bson/msgpack output.

60
doc/DiffRedis.md Normal file
View File

@ -0,0 +1,60 @@
LedisDB is not Redis, so you can not use some Redis clients for LedisDB directly.
But LedisDB uses Redis protocol for communication and many APIs are same as Redis,
so you can easily write your own LedisDB client based on a Redis one.
Before you write a client, you must know some differences between LedisDB and Redis.
## Data Structure
LedisDB has no Strings data type but KV and Bitmap, any some Keys and Strings commands in Redis will only affect KV data, and "bit" commands affect Bitmap.
## Del
In Redis, `del` can delete all type data, like String, Hash, List, etc, but in LedisDB, `del` can only delete KV data. To delete other type data, you will use "clear" commands.
+ KV: `del`, `mdel`
+ Hash: `hclear`, `mhclear`
+ List: `lclear`, `mlclear`
+ Set: `sclear`, `msclear`
+ Zset: `zclear`, `mzclear`
+ Bitmap: `bclear`, `mbclear`
## Expire, Persist, and TTL
The same for Del.
+ KV: `expire`, `persist`, `ttl`
+ Hash: `hexpire`, `hpersist`, `httl`
+ List: `lexpire`, `lpersist`, `lttl`
+ Set: `sexpire`, `spersist`, `sttl`
+ Zset: `zexpire`, `zpersist`, `zttl`
+ Bitmap: `bexpire`, `bpersist`, `bttl`
## ZSet
ZSet only support int64 score, not double in Redis.
## Transaction
LedisDB supports ACID transaction using LMDB or BoltDB, maybe later it will support `multi`, `exec`, `discard`.
Transaction API:
+ `begin`
+ `commit`
+ `rollback`
## Scan
LedisDB supplies `xscan`, etc, to fetch data iteratively.
+ KV: `xscan`
+ Hash: `hxscan`
+ List: `lxscan`
+ Set: `sxscan`
+ Zset: `zxscan`
+ Bitmap: `bxscan`
Of course, LedisDB has not implemented all APIs in Redis, you can see full commands in commands.json, commands.doc or [wiki](https://github.com/siddontang/ledisdb/wiki/Commands).