Implementation of distributed locking over Redis
package main
import (
"context"
"github.com/go-redis/redis"
"github.com/saromanov/redisdl"
)
func main() {
client := redis.NewClient(&redis.Options{
Network: "tcp",
Addr: "127.0.0.1:6379",
})
defer client.Close()
dl, err := redisdl.New(&redisdl.Options{
Client: client,
Key: "fun.lock",
RetryCount: 3,
})
if err != nil {
panic(err)
}
dl.Lock(context.Background())
defer dl.Unlock()
}