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