3个版本

0.0.3 2022年9月9日
0.0.2 2022年9月9日
0.0.1 2022年9月9日

数据库接口中排名第1888

Download history 146/week @ 2024-03-12 40/week @ 2024-03-19 37/week @ 2024-03-26 81/week @ 2024-04-02 49/week @ 2024-04-09 88/week @ 2024-04-16 44/week @ 2024-04-23 72/week @ 2024-04-30 28/week @ 2024-05-07 47/week @ 2024-05-14 49/week @ 2024-05-21 39/week @ 2024-05-28 49/week @ 2024-06-04 37/week @ 2024-06-11 34/week @ 2024-06-18 25/week @ 2024-06-25

每月下载量154

BSD-3-Clause

17KB
328

redlock-async-rs - 使用Redis的异步分布式锁

GitHub Workflow Status Crates.io

这是基于Redis的分布式锁机制的Redlock实现。

它是基于现有redlock-rs的分支,在其之上构建了异步。

构建

cargo build --release

使用方法

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;
}

测试

使用以下命令运行测试

cargo test

使用以下命令运行示例应用程序

cargo run --release

贡献

如果您发现错误或想以其他方式提供帮助,请提交问题

许可证

BSD。见LICENSE

依赖关系

约10–25MB
约347K SLoC