# redislock **Repository Path**: aiyuntang/redislock ## Basic Information - **Project Name**: redislock - **Description**: 一个基于redis的、可重入、自旋式分布式锁 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 0 - **Created**: 2018-12-18 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: distributed-service **Tags**: None ## README # redislock distributed lock base on redis 一个基于redis的、可重入、自旋式分布式锁,使用方式: ``` java String testLockKey = "testLockKey1"; RedisLock rlock = new RedisLock(jedis, testLockKey, 10000, 6000); //10000是最长自旋时间(毫秒),6000是获取后自动失效时间(毫秒) // 业务操作 rlock.release(); ``` # 使用限制 * 业务操作到锁主动释放(release调用)占用的时间不要超过自动失效时间,不然锁的语义失效 * Redis服务如果是Redis集群,存在一定风险,风险如下 ``` 客户端A在主节点获得了一个锁。 主节点挂了,而到从节点的写同步还没完成。 从节点被提升为主节点。 客户端B从新主节点获取跟A一样的锁 ```