golang实现Redis分布式自旋锁+本地自旋锁
golang使用redis的setnx实现了一个自选锁,有key超时,同时也有我们调用redis链接时的超时。
package locker
import (
context
github.com/go-redis/redis
runtime
time
)
type Lock struct {
resource string
value interface{}
timeout time.Duration
redisCli *redis.ClusterClient //这个是链接redis集群的cli,可以自行修改
}
func NewRedis(red