1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
//! redlock-rs is an implementation of the [distributed locking
//! mechanism](http://redis.io/topics/distlock) built on top of Redis.
//!
//! It is more or less a port of the [Ruby version](https://github.com/antirez/redlock-rb).
//!
//! # Basic Operation
//! ```rust,no_run
//! # use redlock::RedLock;
//! 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) {
//! Ok(Some(l)) => { lock = l; break },
//! Ok(None) => (),
//! Err(e) => panic!("Error communicating with redis: {}", e)
//! }
//! }
//!
//! // Critical section
//!
//! rl.unlock(&lock);
//! ```
mod redlock;
pub use crate::redlock::{Lock, RedLock, RedLockGuard};