This is an implementation of Redlock, the distributed locking mechanism built on top of Redis. It is more or less a port of the Ruby version.
It includes a sample application in main.rs.
cargo build --release
```rust use redlock::RedLock;
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) { Some(l) => { lock = l; break } None => () } }
// Critical section
rl.unlock(&lock); }
```
Run tests with:
cargo test
Run sample application with:
./target/release/redlock
If you find bugs or want to help otherwise, please open an issue.
BSD. See LICENSE.