Categorygithub.com/applinskinner/redsync
modulepackage
1.4.1
Repository: https://github.com/applinskinner/redsync.git
Documentation: pkg.go.dev

# README

Redsync

Build Status

Redsync provides a Redis-based distributed mutual exclusion lock implementation for Go as described in this post. A reference library (by antirez) for Ruby is available at github.com/antirez/redlock-rb.

Installation

Install Redsync using the go get command:

$ go get github.com/applinskinner/redsync

Two driver implementations will be installed; however, only the one used will be include in your project.

See the examples folder for usage of each driver.

Documentation

Contributing

Contributions are welcome.

License

Redsync is available under the BSD (3-Clause) License.

Disclaimer

This code implements an algorithm which is currently a proposal, it was not formally analyzed. Make sure to understand how it works before using it in production environments.

# Packages

No description provided by the author
No description provided by the author

# Functions

New creates and returns a new Redsync instance from given Redis connection pools.
SetDriftFactor can be used to set the clock drift factor.
SetExpiry can be used to set the expiry of a mutex to the given value.
SetGenValueFunc can be used to set the custom value generator.
SetRetryDelay can be used to set the amount of time to wait between retries.
SetRetryDelayFunc can be used to override default delay behavior.
SetTries can be used to set the number of times lock acquire is attempted.

# Variables

No description provided by the author

# Structs

A Mutex is a distributed mutual exclusion lock.
Redsync provides a simple method for creating distributed mutexes using multiple Redis connection pools.

# Interfaces

An Option configures a mutex.

# Type aliases

A DelayFunc is used to decide the amount of time to wait between retries.
OptionFunc is a function that configures a mutex.