redislock-rs - Distributed locks with Redis

GitHub Workflow Status Crates.io

This is an implementation of Redislock, 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.

Build

cargo build --release

Usage

```rust use redislock::{random_char, RedisLock};

fn main() { let rl = RedisLock::new(vec![ "redis://127.0.0.1:6380/", "redis://127.0.0.1:6381/", "redis://127.0.0.1:6382/"]);

let lock;
loop {
    let val = random_char(Some(20));
    match rl.lock("mutex".as_bytes(), val, 1000, None, None) {
        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.

Maintainer

License

BSD. See LICENSE.