IceFireDB
Distributed disk storage system based on Raft and RESP protocol.
- High performance
- Distributed consistency
- Reliable LSM disk storage
- Cold and hot mixed data storage structure
- Multiple groups of raft clusters, horizontal expansion and contraction of data groups(Upgrading soon)
- More advanced cache implementation, faster LSM persistent storage
Imagine Architecture
Command support
1. String operating
- APPEND
- BITCOUNT
- BITOP
- BITPOS
- DECR
- DECRBY
- DEL
- EXISTS
- GET
- GETBIT
- SETBIT
- GETRANGE
- GETSET
- INCR
- INCRBY
- MGET
- MSET
- SET
- SETEX
- SETEXAT
- SETRANGE
- EXPIRE
- EXPIREAT
- TTL
2. Hash operating
- HSET
- HGET
- HDEL
- HEXISTS
- HGETALL
- HINCRBY
- HKEYS
- HLEN
- HMGET
- HMSET
- HSETEX
- HSTRLEN
- HVALS
- HCLEAR
- HMCLEAR
- HEXPIRE
- HEXPIREAT
- HKEYEXIST
- HTTL
3. List operating
- RPUSH
- LPOP
- LINDEX
- LPUSH
- RPOP
- LRANGE
- LSET
- LLEN
- RPOPLPUSH
- LCLEAR
- LMCLEAR
- LEXPIRE
- LEXPIREAT
- LKEYEXISTS
- LTRIM
- LTTL
4. Sorted Sets
- ZADD
- ZCARD
- ZCOUNT
- ZREM
- ZCLEAR
- ZRANK
- ZRANGE
- ZREVRANGE
- ZSCORE
- ZINCRBY
- ZREVRANK
- ZRANGEBYSCORE
- ZREVRANGEBYSCORE
- ZREMRANGEBYSCORE
- ZREMRANGEBYRANK
5. Sets
- SADD
- SCARD
- SDIFF
- SDIFFSTORE
- SINTER
- SINTERSTORE
- SISMEMBER
- SMEMBERS
- SREM
- SUNION
- SUNIONSTORE
- SCLEAR
- SMCLEAR
- SEXPIRE
- SEXPIREAT
- STTL
- SPERSIST
- SKEYEXISTS
6. System cmd
- INFO
- FLUSHALL
- HSCAN
- SSCAN
- ZSCAN
- XSCAN
- XHSCAN
- XSSCAN
- XZSCAN
Performance
[email protected]:~/DATA/ICODE/GoLang/IceFireDB$ redis-benchmark -h 127.0.0.1 -p 11001 -n 10000000 -t set,get -c 512 -P 512 -q
SET: 253232.12 requests per second
GET: 2130875.50 requests per second
License
Thanks
I stood on the shoulders of giants and did only simple things. Thank you for your attention.
- https://github.com/tidwall/uhaha
- https://github.com/syndtr/goleveldb
- https://github.com/dgraph-io/ristretto
- https://github.com/ledisdb/ledisdb
- https://github.com/dgraph-io/badger
Disclaimers
When you use this software, you have agreed and stated that the author, maintainer and contributor of this software are not responsible for any risks, costs or problems you encounter. If you find a software defect or BUG, please submit a patch to help improve it!