This project was created during my study of redis3.2 with the aim of gaining a deeper understanding of the implementation principles of the Redis server and Go programming. This project is mainly a learning-oriented project for self-learning and exploration.
- Implementation of several Redis commands
- Modified command handling to single-threaded consumption, simplifying thread safety and locking mechanisms
- TTL mechanism shifted from a time-wheel to a priority queue sorted by expiration time, combining scheduled and random cleanup for expired keys
- Network handling using gnet
- Support for AOF (Append Only File) and AOF Rewrite
- Implementation of the five basic Redis data structures
- Support for RDB (Redis Database File) persistence
- Exploration and implementation of Redis master-slave replication
- Linux
- macOS
- Windows (Performance may be limited due to partial gnet support)