在《分布式锁在spring-cloud的实践.1》中,每次获锁时,都有一次查询操作,在并发场景下,也增加了延迟和redis的压力,redis提供了redlock解决方案。
redlock简介
在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。实现高效的分布式锁有三个属性需要考虑:
- 安全属性:互斥,不管什么时候,只有一个客户端持有锁
- 效率属性A:不会死锁
- 效率属性B:容错,只要大多数redis节点能够正常工作,客户端端都能获取和释放锁。
Redlock是redis官方提出的实现分布式锁管理器的算法。
项目地址: https://github.com/nick8sky/spring-clouds/tree/master/redis-redlock