3 releases
0.0.3 | Sep 9, 2022 |
---|---|
0.0.2 | Sep 9, 2022 |
0.0.1 | Sep 9, 2022 |
#1803 in Database interfaces
206 downloads per month
17KB
328 lines
redlock-async-rs - Async Distributed locks with Redis
This is an implementation of Redlock, the distributed locking mechanism built on top of Redis.
It is a fork of existing redlock-rs with async built on top of it.
Build
cargo build --release
Usage
use redlock::RedLock;
#[tokio::main]
fn main() {
let rl = RedLock::new(vec!["redis://127.0.0.1:6380/", "redis://127.0.0.1:6381/", "redis://127.0.0.1:6382/"]);
let lock;
loop {
match rl.lock("mutex".as_bytes(), 1000).await {
Ok(l) => { lock = l; break }
Err(_) => ()
}
}
// Critical section
rl.unlock(&lock).await;
}
Tests
Run tests with:
cargo test
Run sample application with:
cargo run --release
Contribute
If you find bugs or want to help otherwise, please open an issue.
License
BSD. See LICENSE.
Dependencies
~11–22MB
~324K SLoC