Crate redsync

Source
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
Lock holds the metadata of an acquired lock.
MultiError
MultiError wraps Vec<RedsyncError>, typically aggregated over instances in a Redsync cluster.
RedisInstance
RedisInstance is the implementation of the Instance trait for a Redis server.
Redsync
Redsync is a distributed lock manager that implements the Redlock algorithm.
RedsyncBuilder
RedsyncBuilder is a builder for configuring and constructing a Redsync instance.

Enums§

RedsyncError
RedsyncError is an enum of all error kinds returned by the crate.

Traits§

Instance
Instance represents an entity with locking and unlocking capabilities.