Skip to content

Naist4869/redislock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This code implements a Redis-based distributed lock library. It includes two main interface types: Locker and Lock.

The Locker interface type defines methods for getting and creating Lock instances:

Get(key string, expire time.Duration, tries int) (Lock, error) - gets a Lock instance with the specified key name, expiration time, and retry count. GetAndLock(ctx context.Context, key string, expire time.Duration, tries int) (lock Lock, err error) - gets a Lock instance and immediately calls the Acquire() method to acquire the lock. The Lock interface type defines methods for lock operations:

Acquire(context.Context) error - acquires the lock. If the lock is held by another client, this method will block until the lock is released or times out. Release(context.Context) (bool, error) - releases the lock. Valid() bool - checks if the lock is still valid. The implementation of this library is based on the redsync library and uses Redis as the underlying storage.

The locker struct implements the Locker interface and contains an instance of redsync for creating and managing distributed locks.

The lock struct implements the Lock interface and contains an instance of redsync.Mutex for operating on the lock in Redis. It also includes some helper properties and methods for automatically renewing the lock, checking if the lock is still valid, and other operations.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages