redislock

Crates.ioredislock
lib.rsredislock
version1.3.0
sourcesrc
created_at2022-06-06 07:21:40.131742
updated_at2022-06-06 07:21:40.131742
descriptionImplementation of the distributed locking mechanism built on top of Redis
homepagehttps://github.com/hxuchen/redislock
repositoryhttps://github.com/hxuchen/redislock
max_upload_size
id600520
size46,687
IronC (hxuchen)

documentation

README

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

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.

Commit count: 70

cargo fmt