Keva v0.1.0-alpha
Pre-release
Pre-release
First pre-release
Implemented Redis commands:
Server
- INFO
- FLUSHDB
- TIME
Connection
- AUTH
- ECHO
- PING
- QUIT
- CLIENT ID
- CLIENT INFO
Key
- DEL
- EXISTS
- RENAME
- EXPIRE
- EXPIREAT
- DUMP
- RESTORE
- TYPE
String
- APPEND
- GET
- INCRBY
- INCR
- SET
- GETSET
- MGET
- STRLEN
- SETRANGE
Hash
- HGET
- HGETALL
- HKEYS
- HVALS
- HSET
- HDEL
- HEXISTS
- HLEN
- HSTRLEN
List
- LPUSH
- RPUSH
- LPOP
- RPOP
- LLEN
- LRANGE
- LINDEX
- LSET
- LREM
Set
- SADD
- SMEMBERS
- SISMEMBER
- SCARD
- SDIFF
- SINTER
- SUNION
- SMOVE
- SREM
Pub/Sub
- SUBSCRIBE
- UNSUBSCRIBE
- PUBLISH
Transactions
- MULTI
- EXEC
- DISCARD
- WATCH
Persistence modes:
- KDB (Keva Database): KDB persistence performs point-in-time snapshotting of the state of the system. This means that the state of the system is stored in a database, and the database is periodically backed up.
- AOF (Append-Only File): The AOF persistence logs every write operation to a file, that will be played again at server startup, reconstructing the original dataset.
KDB is the default persistence mechanism and is the recommended persistence. Use AOF if you need the database more durable, it tradeoffs performance for durability.
Security
Basic Redis Authentication mode (using AUTH
command)
Replication
None (working in progress and not available yet)
Benchmark
Because we're in the early development stage, a more detailed test will be provided later (when Keva is more mature and stable)
Redis 6.2.6:
$ redis-benchmark -t set,get -h localhost -p 6379 -n 1000000 -q
SET: 66128.82 requests per second, p50=0.351 msec
GET: 68662.45 requests per second, p50=0.367 msec
Keva:
$ redis-benchmark -t set,get -h localhost -p 6767 -n 1000000 -q
SET: 65312.52 requests per second, p50=0.391 msec
GET: 65703.02 requests per second, p50=0.391 msec
Machine:
Macbook Pro 16-inch 2019 (macOS Big Sur)
Intel i7-9750H (12) @ 2.60GHz, 16GB memory
More details on Keva homepage
Thanks @axblueblader @duongcongtoai @haphananhtuan @yampml for the contributions