#redis #distributed #locking #redlock #distributed-lock

redlock-async

Implementation of the distributed locking mechanism built on top of Async Redis

3 releases

0.0.3 Sep 9, 2022
0.0.2 Sep 9, 2022
0.0.1 Sep 9, 2022

#4 in #redlock

Download history 46/week @ 2024-11-16 34/week @ 2024-11-23 40/week @ 2024-11-30 50/week @ 2024-12-07 25/week @ 2024-12-14 7/week @ 2024-12-21 13/week @ 2024-12-28 35/week @ 2025-01-04 41/week @ 2025-01-11 25/week @ 2025-01-18 16/week @ 2025-01-25 29/week @ 2025-02-01 29/week @ 2025-02-08 87/week @ 2025-02-15 99/week @ 2025-02-22 75/week @ 2025-03-01

297 downloads per month

BSD-3-Clause

17KB
328 lines

redlock-async-rs - Async Distributed locks with Redis

GitHub Workflow Status Crates.io

This is an implementation of Redlock, the distributed locking mechanism built on top of Redis.

It is a fork of existing redlock-rs with async built on top of it.

Build

cargo build --release

Usage

use redlock::RedLock;

#[tokio::main]
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).await {
      Ok(l) => { lock = l; break }
      Err(_) => ()
    }
  }

  // Critical section
  rl.unlock(&lock).await;
}

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.

License

BSD. See LICENSE.

Dependencies

~11–22MB
~338K SLoC