tinyRedis is a minimalistic Redis server clone written in Go. This project is lightweight, efficient, and fully compatible with the Redis protocol, making it ideal for educational purposes.
⚠️ Disclaimer: tinyRedis is intended as a learning tool. It is not production-ready and may lack advanced features and security guarantees of Redis.
- Redis Protocol Compatibility: Works with standard Redis clients.
- Lightweight Design: Core functionality with minimal overhead.
- Written in Go: Uses Go's concurrency model for efficient multi-connection handling.
- Educational: Great for understanding how a key-value store works internally.
- Install Go 1.22+
git clone https://github.com/robitec97/tinyRedis.git
cd tinyRedis
go run main.goStart the server:
go run main.goConnect with redis-cli:
redis-cli -p 6379SET hello world
OK
GET hello
"world"| Feature | Redis | tinyRedis |
|---|---|---|
| SET/GET | ✅ | ✅ |
| DEL | ✅ | ✅ |
| AOF Persistence | ✅ | ✅ (basic) |
| Pub/Sub | ✅ | ❌ |
| Clustering | ✅ | ❌ |
- Improve persistence reliability
- Implement Pub/Sub
- Add support for transactions
- Add clustering support
Contributions, issues, and feature requests are welcome!
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the Apache License 2.0.
You are free to use, modify, and share this project, but you must give appropriate credit to the original author robitec97.
