6 个版本 (稳定版)

2.0.0 2023年4月6日
1.2.0 2021年8月30日
1.1.0 2021年4月6日
1.0.0 2016年1月15日
0.3.0 2015年4月9日

#382 in 并发

Download history 587/week @ 2024-04-22 282/week @ 2024-04-29 240/week @ 2024-05-06 522/week @ 2024-05-13 329/week @ 2024-05-20 349/week @ 2024-05-27 313/week @ 2024-06-03 263/week @ 2024-06-10 215/week @ 2024-06-17 165/week @ 2024-06-24 201/week @ 2024-07-01 153/week @ 2024-07-08 421/week @ 2024-07-15 371/week @ 2024-07-22 223/week @ 2024-07-29 312/week @ 2024-08-05

1,331 次每月下载

BSD-3-Clause

19KB
359

redlock-rs - 基于 Redis 的分布式锁

GitHub Workflow Status Crates.io

这是基于 Redis 的分布式锁定机制 Redlock 的实现。它基本上是 Ruby 版本 的移植。

它包括一个示例应用程序在 main.rs

构建

cargo build --release

使用方法

use redlock::RedLock;

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) {
      Some(l) => { lock = l; break }
      None => ()
    }
  }

  // Critical section

  rl.unlock(&lock);
}

测试

使用以下命令运行测试

cargo test

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

cargo run --release

贡献

如果您发现错误或想在其他方面提供帮助,请 打开一个问题

维护者

  • 从 2014 年到 2021 年 6 月,此 crate 由 @badboy 拥有和维护
  • 从 2021 年 6 月开始,此 crate 由 @aig787 维护

许可证

BSD。见 LICENSE

依赖项

~2.8–4.5MB
~106K SLoC