Crate redsync[][src]

Installation

Add the following line to your Cargo.toml file:

[dependencies]
redsync = "1.0.0"

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.