Rover is a lightning-fast, in-memory key-value store that combines the simplicity of Redis with the power of Go. Built from scratch, Rover leverages Go's robust concurrency features and performance optimizations to deliver a high-performance data storage solution.
- 🚄 Blazing Fast: In-memory storage for rapid data access
- 🔄 Concurrent: Utilizes Go's goroutines for efficient multi-client handling
- � Persistence: Dual persistence mechanisms (AOF & RDB) for data durability
- 🔌 Standalone Mode: Run Rover as a standalone server
- 🔐 Secure: (TODO: Add security features)
- 🫙 Managing Databases: Out of the box, a Rover instance supports 16 logical databases
- 🎨 Beautiful CLI: Eye-catching command-line interface with color support
- 👾 Robust Command Support:
- Data Commands: ping, get, set (with options: NX/XX, EX/PX, GET), del, exists, append
- Counter Commands: incr, incrby, decr, decrby
- Persistence Commands: save (synchronous save), bgsave (background save)
- Utility Commands: flushall (clear all keys), strlen (check string length)
docker run -d --name rover -p 6379:6379 subrotokumar/roverRover supports two persistence mechanisms to ensure your data is durable:
AOF logs every write operation, allowing complete data reconstruction by replaying commands.
Features:
- Real-time command logging
- Three sync policies:
always: Sync after every command (safest, slowest)everysec: Sync every second (balanced, default)no: Let OS handle syncing (fastest, least safe)
RDB creates point-in-time snapshots of your dataset at specified intervals.
Features:
- Periodic automatic snapshots (default: every 5 minutes)
- Manual snapshots with
SAVEorBGSAVEcommands - Threshold-based saves (default: after 100 changes)
Configure persistence using environment variables:
# Disable persistence entirely
DISABLE_PERSISTENCE=true
# Customize AOF settings
AOF_PATH=./data/appendonly.aof
# Customize RDB settings
RDB_PATH=./data/dump.rdb
# Enable debug mode
DEBUG_MODE=trueSAVE- Create a synchronous snapshot (blocks until complete)BGSAVE- Create a snapshot in the background
On startup, Rover automatically:
- Loads the RDB snapshot (if available)
- Replays AOF commands (if available)
This ensures your data is restored to its last known state.
- Go Power: Written in Go for excellent performance and concurrency
- Redis Compatibility: Familiar Redis-like commands and interface
- Lightweight: Minimal dependencies for a small footprint
- Extensible: Easy to add new features and commands
Rover is released under the Apache License Version 2.0 License. See the LICENSE file for details.
- Inspired by Redis
- Built with love using Go

