私信发送成功
Watch Star Fork

fightingman / springboot-redislockJavaApache-2.0

最轻量级的redis分布式锁实现
克隆/下载
fightingman 最后提交于 2017-11-13 10:17 更新 README.md
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
2017-09-28 17:36
Loading...
README.md 1.00 KB

springboot-redislock

最轻量级的redis分布式锁实现,依赖Spring。

##快速上手 实现锁的思想参考可重入锁,该分布式锁支持重入机制。

加锁模式

  • RedisLock.lock:直到加锁成功。
  • RedisLock.tryLock:尝试加锁。

准备工作

  • 引入spring-redis依赖: 可以在pom中直接引入,这边不多做叙述。

使用优点

加锁在一个原子操作中完成,具有redis锁失效,以及本地解锁。 会有人有疑问这样和setNx 加上 失效时间有何区别(下面简称普通方式),下面进行对比。

1.redislock 支持锁重入,使用方式与ReentrantLock 类似。 2.普通方式无法解决当前锁在分布式情况下被另外的客户端解锁的可能。

存在缺点

客户端1在Redis一个主节点获得了一个锁。主节点挂了,而主从节点的写同步还没完成(异步复制)。 从节点被提升为主节点,客户端2就有可能获得和1相同的锁。

项目点评 (2)

你可以在登录后,对此项目发表评论

3_float_left_people 3_float_left_close