2 unstable releases

new 0.4.0 Nov 13, 2024
0.3.0 Oct 24, 2024
0.2.0 Oct 22, 2024
0.1.2 Oct 22, 2024

#494 in Database interfaces

Download history 470/week @ 2024-10-21 10/week @ 2024-10-28 120/week @ 2024-11-11

600 downloads per month

Apache-2.0

37KB
697 lines

redis-lock

Crates.io docs

Rusty distributed locking backed by Redis.

// Setup.
redis_lock::setup(&client).await?;
// Get lock.
let mut lock = redis_lock::MultiResourceLock::new(client.clone())?;
let resources = vec![String::from("account1"), String::from("account2")];
// Execute a function with the lock.
lock.map_default(&resources, async move { /* .. */ }).await?;

Vs rslock

I would recommend this library over rslock when your application does operations that require exclusive access to multiple resources.

Similar work


lib.rs:

Rusty distributed locking backed by Redis.

// Setup.
redis_lock::setup(&client).await?;
// Get lock.
let mut lock = redis_lock::MultiResourceLock::new(client.clone())?;
let resources = vec![String::from("account1"), String::from("account2")];
// Execute a function with the lock.
lock.map_default(&resources, async move { /* .. */ }).await?;

Vs rslock

I would recommend this library over rslock when:

  • your application is focussed on async.
  • your application does operations that require exclusive access to multiple resources.

Similar work

Dependencies

~8–17MB
~228K SLoC