1 stable release
1.3.0 | Jun 6, 2022 |
---|
#2084 in Database interfaces
15KB
225 lines
redislock-rs - Distributed locks with Redis
This is an implementation of Redislock, the distributed locking mechanism built on top of Redis. It is more or less a port of the Ruby version.
It includes a sample application in main.rs.
Build
cargo build --release
Usage
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);
}
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.
Maintainer
- Forked from badboy/redlock-rs, maintained by @IronC
License
BSD. See LICENSE.
Dependencies
~4–15MB
~201K SLoC