rudis
rudis copied to clipboard
Multi-threaded redis server implemented in rust programming language.
Rudis
rusty dictionary server
中文
Introduction
Rudis is a database written in Rust, multi-threaded, and compatible with redis. It has better performance than Redis and solves some common problems of Redis.
Goal (WIP)
-
Compatible with redis client
-
More efficient than redis
- Implemented with rust, you can write a safer and more efficient multi-threaded data engine
- Higher io efficiency
- Optimized for big keys
- Optimized for hot keys
-
Less problems than redis
- Use rust to reduce various memory security bugs
- Timely clean up expired data
-
Better operation and maintenance than redis
- Easier to manage clusters
- Random horizontal expansion
- Automatic leader-follower switch
- Automatic scheduling of hot slots
known issues, warnings
- Disclaimer Please don't use rudis in production now.
- If reliability is your primary constraint, use Redis. Rudis is beta.
- The PD module has not been tested and is temporarily not highly available, so there may be a single point of failure problem
- Only supports linux and macos
Quick start
- Prepare the latest version of rust toolchain
- Clone code
git clone [email protected]:liangyongrui/rudis.git
- Execute in sequence
cd rudiscargo build --release./target/release/server(Specify address to start:RUDIS_server_addr=0.0.0.0:6379 ./target/release/server)
Current roadmap (Version 0.1)
- [ ] Pass Redis TCL test
- [ ] Complete high-availability pd
Benchmarks
The performance of Rudis is better than Redis 6.2.5. Check the details.
Supported redis commands
Supported redis commands
Contributing
Contributions are always welcomed! Please refer to CONTRIBUTING for detailed guidelines.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in rudis by you, shall be licensed as MIT, without any additional terms or conditions.