Skip to content

rsecob/redlock-async-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Distributed locks with Async Redis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9