In-memory key-value store accessible over TCP. Nothing production-grade, this is just a toy project to play with Rust.
- RESP (REdis Serialization Protocol) compatible — works with
redis-cliand any Redis client library GET,SET,DEL, andPINGcommands- TTL support via
SET key value EX seconds - Multi-client support (threaded,
Arc<Mutex>) - Write-ahead log (WAL) for persistence across restarts
- Background garbage collection for expired entries
cargo build --release
cargo runConnect with redis-cli:
redis-cli -p 7878Commands are sent as RESP arrays of bulk strings. Responses use standard RESP types.
> SET key value
+OK
> SET key value EX 60
+OK
> GET key
$5
value
> GET missing
$-1
> DEL key
:1
> DEL missing
:0
> PING
+PONG
Unrecognized or malformed commands return -ERR <message>.
cargo test