Skip to content

Releases: keva-dev/keva

Keva v1.0.0-rc2

02 Jun 05:20
Compare
Choose a tag to compare
  • Major changes in code structure (separate storage and computation) #138
  • Split unit tests #139
  • Add server.await() methods #137
  • Add CONFIG set command #140
  • Thanks new contributors @taivtse @TuanHungVU1202

Keva v1.0.0-rc1

19 May 02:44
Compare
Choose a tag to compare

Keva v1.0.0-rc0

30 Dec 07:24
Compare
Choose a tag to compare

Keva v0.1.4-alpha

23 Dec 17:38
Compare
Choose a tag to compare
Keva v0.1.4-alpha Pre-release
Pre-release
  • Move expiration logic inside DB implementations #89
  • Fix AOF everysec bug #92
  • Uses FileSystem sync for AOF mode #91
  • Update docs

Keva v0.1.3-alpha

19 Dec 15:42
Compare
Choose a tag to compare
Keva v0.1.3-alpha Pre-release
Pre-release
  • Implement DECR, DECRBY, GETRANGE, INCRBYFLOAT, MSET #78
  • Implement ZADD and ZSCORE #79
  • Reboot config #82
  • Update docs #86
  • Fix config cannot parse boolean #88

Keva v0.1.2-alpha

16 Dec 14:59
Compare
Choose a tag to compare
Keva v0.1.2-alpha Pre-release
Pre-release
  • Adds Netty Thread-local object pool #72
  • Fix String deserialize exception #74
  • Update docs #76

Keva v0.1.1-alpha

12 Dec 01:46
Compare
Choose a tag to compare
Keva v0.1.1-alpha Pre-release
Pre-release
  • Modify initial JVM heap size
  • Publish KevaDB Maven packages #68
  • Support JDK8 #70
  • Fix #66 check AOF file writable at boot

Keva v0.1.0-alpha

11 Dec 02:41
Compare
Choose a tag to compare
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