使用 redis 建立 分佈式鎖

Posted by JamsBlocKK Blog on Wednesday, February 26, 2020

引入套件

import "github.com/jamesblockk/rdslock"

使用 url 初始化

rdslock.InitURL("redis://127.0.0.1:6379")

使用已有連線 初始化 rdslock

client := redis.NewClient(&redis.Options{
    Addr:     "127.0.0.1:6379",
	Password: "",
    DB:       0,
})

rdslock.InitAssigned(client)

在分佈式系統 執行一次的作法

const key = "LOCK_TEST_KEY"

err := rdslock.Lock(key, 5 * time.Second )
if err != nil {
	println(err.Error())
	return
}
println("lock success  ... ")

do something ....

err = rdslock.UnLock(key)
if err != nil {
	println(err.Error())
	return
} 

println("unlock success ...")

rdslock package