A really simple but multi-core Key-Value store.
It is allowing concurrent access to the underlying storage engine for reads, so read heavy use cases can take full advantage of all cores.
At the same time it ensures that writes always happen on the latest state, so no write operation gets deleted during concurrent storage engine updates.
The underlying storage engine is a persistent hashmap.
Setting and deleting keys happens asynchronously, so the client will get a result before the actual store or delete on the storage engine will take place.
This KV store server is listening on TCP for connections.
It speaks the redis protocol, so it can be accessed by any redis client e.g. redis-cli.
$ make
$ ./build/server -h localhost -p 65535
- PING
- GET
- SET (EX, PX, NX, XX arguments are not supported)
- DEL
- Install pony-stable
- Update your
bundle.json
{
"type": "github",
"repo": "mfelsche/pony-kv"
}
stable fetch
to fetch your dependenciesuse "pony-kv"
to include this packagestable env ponyc
to compile your application