go实现的一个基于lua+redis的分布式锁,项目依赖github.com/go-redis/redis
的client实现。
- 支持互斥锁
- 支持读写锁
cli := redis.NewClient(&redis.Options {
Addr: "127.0.0.1:6379",
})
locker := NewRWMutex("key", "val", time.Second())
locker.Lock(ctx, cli)
locker.Lock(ctx, cli)