# redlock-rs - Distributed locks with Redis This is an implementation of Redlock, the [distributed locking mechanism][distlock] built on top of Redis. It is more or less a port of the [Ruby version][redlock.rb]. It includes a sample application in [main.rs](src/main.rs). ## Build ``` cargo build --release ``` ## Usage ```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); } ``` ## 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](https://github.com/badboy/redlock-rs/issues). ## License BSD. See [LICENSE](LICENSE). [distlock]: http://redis.io/topics/distlock [redlock.rb]: https://github.com/antirez/redlock-rb