Vedis – An Embeddable Implementation of Redis(github.com)
github.com
Vedis – An Embeddable Implementation of Redis
https://github.com/symisc/vedis
6 comments
It seems that multiple files are merged into single vedis.c file. It's good for embedding into application, sqlite does the same, but I think it's better to open original source code and a Makefile to generate embeddable source code, at least if they want to get contributions from community.
I understand why you want to trade in on the Redis name and brand, but this is NOT an "Implementation of Redis" in any way as far as I can tell. This is a facsimile of a subset of the commands available in redis.
Wouldn't you just store your values as an array?
The point of redis is having external, shared memory.
The point of redis is having external, shared memory.
Vedis is a standard key/value store similar to Berkeley DB, Tokyo Cabinet, LevelDB, etc. but with a rich feature set including support for transactions (ACID), concurrent reader, etc.
The point of redis is having external, shared, persistable memory. Redis abstracts away the problem of getting atomic updates to various data structures safely and asynchronously written to disk under continuous write-heavy workloads. Vedis abstracts away that same problem for process-local data.
Can multiple processes access the same database? Or is the model similar to sqlite?
Similar to sqlite it looks like, it returns VEDIS_BUSY if concurrent write operations are attempted for various calls.
well that's one way to get ACID compliance...
Random idea: this could probably be embedded quite easily into the Erlang VM. You'd then be able to spawn() "a Vedis keyspace" as easily (and scalably) as you can currently spawn an ETS table. Might be useful in place of both Mnesia and network-connected Redis.
Ho hum.
Great project though, looks cool.