Struct redlock::RedLock[][src]

pub struct RedLock {
    pub servers: Vec<Client>,
    // some fields omitted
}

The lock manager.

Implements the necessary functionality to acquire and release locks and handles the Redis connections.

Fields

servers: Vec<Client>

List of all Redis clients

Implementations

impl RedLock[src]

pub fn new(uris: Vec<&str>) -> RedLock[src]

Create a new lock manager instance, defined by the given Redis connection uris. Quorum is defined to be N/2+1, with N being the number of given Redis instances.

Sample URI: "redis://127.0.0.1:6379"

pub fn get_unique_lock_id(&self) -> Result<Vec<u8>>[src]

Get 20 random bytes from /dev/urandom.

pub fn set_retry(&mut self, count: u32, delay: u32)[src]

Set retry count and retry delay.

Retry count defaults to 3. Retry delay defaults to 200.

pub fn lock(&self, resource: &[u8], ttl: usize) -> Option<Lock<'_>>[src]

Acquire the lock for the given resource and the requested TTL.

If it succeeds, a Lock instance is returned, including the value and the validity time

If it fails. None is returned. A user should retry after a short wait time.

pub fn unlock(&self, lock: &Lock<'_>)[src]

Unlock the given lock.

Unlock is best effort. It will simply try to contact all instances and remove the key.

Auto Trait Implementations

impl RefUnwindSafe for RedLock

impl Send for RedLock

impl Sync for RedLock

impl Unpin for RedLock

impl UnwindSafe for RedLock

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,