Files
Sipro-Marketplaces/internal/redis/lock.go

33 lines
592 B
Go

package redis
import (
"os"
"github.com/redis/rueidis"
"github.com/redis/rueidis/rueidislock"
)
var Locker *rueidislock.Locker
func InitLocker() error {
redisAddr := os.Getenv("REDIS_ADDR")
password := os.Getenv("REDIS_PASSWORD")
locker, err := rueidislock.NewLocker(rueidislock.LockerOption{
ClientOption: rueidis.ClientOption{InitAddress: []string{redisAddr}, Password: password},
KeyMajority: 1,
NoLoopTracking: true,
})
if err != nil {
return err
}
Locker = &locker
return nil
}
func CloseLocker() {
if Locker != nil {
(*Locker).Close()
}
Locker = nil
}