Struct redlock::RedLock [−][src]
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,