# dcslock **Repository Path**: wuuder/dcslock ## Basic Information - **Project Name**: dcslock - **Description**: golang 分布式锁工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-11 - **Last Updated**: 2023-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 分布式锁 ### 模式 - redis - zookeeper 【开发中】 ### 基于redis锁 #### redis版本 ```shell go get github.com/redis/go-redis/v9 ``` #### 基础锁 ```go redis.client.SETNX() ``` #### 公平锁 & 非公平锁 ```go // 建立一个锁连接 lock := DcsLock(&redis.Options{ Addr: "127.0.0.1:6378", ReadTimeout: time.Second * 5, WriteTimeout: time.Second * 5, DB: 1, }, ture, "lock-test") // 设置超时时间,建议设置,避免超长等待导致死锁。 ctx, _ := context.WithTimeout(context.TODO(), time.Second*time.Duration(10)) // 创建一个锁 lock.Lock(ctx) // 解锁 lock.UnLock(ctx) ```