修改redis的传参,接收三种方式redis

This commit is contained in:
Yun
2024-05-22 21:37:42 +08:00
parent 96c3b97bad
commit daf95bb905
4 changed files with 8 additions and 13 deletions
+2 -5
View File
@@ -1,11 +1,8 @@
module github.com/yuninks/lockx module github.com/yuninks/lockx
go 1.19 go 1.20
require ( require github.com/go-redis/redis/v8 v8.11.5
code.yun.ink/open/timer v1.0.1
github.com/go-redis/redis/v8 v8.11.5
)
require ( require (
github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect
-2
View File
@@ -1,5 +1,3 @@
code.yun.ink/open/timer v1.0.1 h1:ZWecU5K0rFB15p8DZubozTEwo1vrO4mUCRwEoD1tbEQ=
code.yun.ink/open/timer v1.0.1/go.mod h1:i6+mEL5eUab+9ZDtxt9S5fMiJkwVLBRsNmfLj2qzN30=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+5 -5
View File
@@ -11,14 +11,14 @@ import (
// 全局锁 // 全局锁
type globalLock struct { type globalLock struct {
redis *redis.Client redis redis.UniversalClient
ctx context.Context ctx context.Context
cancel context.CancelFunc cancel context.CancelFunc
uniqueKey string uniqueKey string
value string value string
} }
func NewGlobalLock(ctx context.Context, red *redis.Client, uniqueKey string) *globalLock { func NewGlobalLock(ctx context.Context, red redis.UniversalClient, uniqueKey string) *globalLock {
ctx, cancel := context.WithTimeout(ctx, opt.lockTimeout) ctx, cancel := context.WithTimeout(ctx, opt.lockTimeout)
return &globalLock{ return &globalLock{
redis: red, redis: red,
@@ -44,7 +44,7 @@ func (g *globalLock) Lock() bool {
resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result() resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result()
if resp != "OK" { if resp != "OK" {
_ = err _ = err
log.Println("globalLock Lock", resp, err, g.uniqueKey, g.value) log.Println("global Lock Lock", resp, err, g.uniqueKey, g.value)
} }
if resp == "OK" { if resp == "OK" {
g.refresh() g.refresh()
@@ -79,7 +79,7 @@ func (g *globalLock) Unlock() bool {
resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value).Result() resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value).Result()
if resp != "OK" { if resp != "OK" {
log.Println("globalLock Unlock", resp, err, g.uniqueKey, g.value) log.Println("global Lock Unlock", resp, err, g.uniqueKey, g.value)
} }
g.cancel() g.cancel()
return true return true
@@ -114,7 +114,7 @@ func (g *globalLock) refreshExec() bool {
resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result() resp, err := g.redis.Eval(g.ctx, script, []string{g.uniqueKey}, g.value, 5).Result()
if resp != "OK" { if resp != "OK" {
log.Println("globalLock refresh", resp, err, g.uniqueKey, g.value) log.Println("global Lock refresh", resp, err, g.uniqueKey, g.value)
} }
return resp == "OK" return resp == "OK"
} }
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"fmt" "fmt"
"testing" "testing"
"code.yun.ink/open/timer/lockx" "github.com/yuninks/lockx"
"github.com/go-redis/redis/v8" "github.com/go-redis/redis/v8"
) )