redis-lock

一个简洁的基于 Redis 单节点的分布式锁实现,可以用在多个实例、多个 pods、多个服务之间并发冲突的加锁场景,支持组合锁。

Stars
4

Redis pods

  • Redis

//  resource-key  1 
lock := NewRedisLock(redisClient, "resource-key", time.Hour * 1)

//  5  1 
err := lock.Lock(time.Second * 5, time.Minute * 1)

// 
err = lock.Unlock()

//  resource1, resource2, resource3  1 
lock := NewRedisLockSet(redisClient, []string{"resource1", "resource2", "resource3"}, time.Hour * 1)

//  5  1 
err := lock.Lock(time.Second * 5, time.Minute)

// 
err = lock.Unlock()

Redis-Lock Redis Redis

Redis Redlock ZooKeeperETCD

Package Rankings
Top 16.01% on Proxy.golang.org