Redsync is a distributed lock manager and Go Redis client extension designed to ensure exclusive access to shared resources. It implements mutual exclusion across multiple processes by using a Redis backend to coordinate synchronization and prevent race conditions in distributed environments.
The main features of go-redsync/redsync are: Distributed Locks, Distributed Exclusive Locking, Lua Scripting, Quorum Voting, Redis-Based Lock Storage, Lock Expiration Policies, Mutual Exclusion Locks, Distributed Task Coordination.
Open-source alternatives to go-redsync/redsync include: redis/rueidis — Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for… redisson/redisson — Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and… lukas-krecan/shedlock — ShedLock is a distributed lock manager designed to prevent scheduled tasks from running concurrently across multiple… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL… bogdanp/dramatiq — Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It… taskforcesh/bullmq — BullMQ is a Redis-backed message queue library and background processor designed for distributed task queueing. It…
Rueidis is a high-performance Redis client library for Go that provides a type-safe and asynchronous interface for interacting with Redis servers. It includes a full implementation of the Redis serialization protocol and a dedicated connection manager to handle pooling, multiplexing, and automatic pipelining. The library is distinguished by its support for RDMA connectivity to reduce latency and CPU overhead. It features a distributed lock manager that implements majority-based locking and optimistic concurrency control, as well as client-side caching with invalidation signals to minimize net
Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and locking framework. It maps Java collections and concurrency primitives to distributed implementations backed by Redis and Valkey, providing synchronous, asynchronous, and reactive APIs for interacting with these data stores. The project distinguishes itself by providing a comprehensive suite of distributed coordination tools, including a locking framework for managing semaphores and countdown latches across multiple application nodes. It also serves as a distributed messaging
ShedLock is a distributed lock manager designed to prevent scheduled tasks from running concurrently across multiple nodes in a distributed system. It acts as a task coordinator that ensures a single execution of timed jobs by managing lock lifespans and utilizing external lock providers. The system utilizes database-backed providers to store task execution states in external databases, synchronizing locks across active cluster nodes. It includes a clock-drift tolerant synchronizer that handles time discrepancies between distributed nodes through the use of shared timestamps and flexible lock
Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations