基于redis的分布式锁。
锁的默认存活时间为5秒,上锁默认超时时间为3秒。支持上锁后自动刷新锁的存活时间,默认没有开启,可使用mutex.AutoRefresh方法开启。
使用demo:
import mutex "github.com/yuanzhangcai/redis-mutex"
// 初始化分布式锁
err := mutex.Init(mutex.RedisServer("127.0.0.1:6379"), mutex.Password("12345678"), mutex.Prefix("lock_demo"))
if err != nil {
fmt.Println(1, err)
return
}
// 创建分布式锁,
// 可以通过:mutex.TTL、mutex.Timeout、mutex.AutoRefresh、mutex.Context方法修改默认参数
m := mutex.NewMutex("Lock_key")
// 上锁
err = m.Lock()
if err != nil {
fmt.Println(err) // 上锁失败
return
}
// do something
m.Unlock() // 解锁