Expand description
Installation
Add the following line to your Cargo.toml file:
[dependencies]
redsync = "1.0.1"
Quick Start
use std::error::Error;
use std::time::Duration;
use redsync::{RedisInstance, Redsync};
fn main() -> Result<(), Box<dyn Error>> {
let dlm = Redsync::new(vec![
RedisInstance::new("redis://127.0.0.1:6389")?,
RedisInstance::new("redis://127.0.0.1:6399")?,
RedisInstance::new("redis://127.0.0.1:6379")?,
]);
let lock = dlm.lock("resource", Duration::from_secs(1))?;
dlm.unlock(&lock)?;
Ok(())
}
For more examples, see examples.
Structs
Lock
holds the metadata of an acquired lock.MultiError
wrapsVec<RedsyncError>
, typically aggregated over instances in a Redsync cluster.RedisInstance
is the implementation of the Instance trait for a Redis server.Redsync
is a distributed lock manager that implements the Redlock algorithm.RedsyncBuilder
is a builder for configuring and constructing a Redsync instance.
Enums
RedsyncError
is an enum of all error kinds returned by the crate.
Traits
Instance
represents an entity with locking and unlocking capabilities.