#分布式 #锁定 #Redis #分布式锁定 #构建 #顶级 #机制

redislock

基于 Redis 构建的分布式锁定机制的实现

1 个稳定版本

1.3.0 2022年6月6日

#2107数据库接口

Download history 22/week @ 2024-03-22 78/week @ 2024-03-29 31/week @ 2024-04-05 8/week @ 2024-04-12 2/week @ 2024-04-19 9/week @ 2024-04-26 8/week @ 2024-05-24 71/week @ 2024-05-31 18/week @ 2024-06-07 4/week @ 2024-06-14

每月下载量 96

BSD-3-Clause

15KB
225

redislock-rs - 使用 Redis 的分布式锁定

GitHub Workflow Status Crates.io

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

它包括一个 main.rs 中的示例应用程序。

构建

cargo build --release

用法

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

测试

使用以下命令运行测试

cargo test

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

cargo run --release

贡献

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

维护者

许可协议

BSD。请参阅 LICENSE

依赖关系

~3–14MB
~204K SLoC