细说Redis分布式锁
- Setnx
- Redlock
- Redisson
Setnx
说到Redis锁的时候,可以先从Setnx讲起,最后慢慢引出set命令的可以加参数,可以体现出自己的知识面。
Redisson
RedLock
- 顺序向五个节点请求加锁
- 根据一定的超时时间来推断是不是跳过该节点
- 三个节点加锁成功并且花费时间小于锁的有效期
- 认定加锁成功
- Martin Kleppmann的质疑贴:http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
- Antirez的反击贴:http://antirez.com/news/101
总结
- https://redis.io/commands/set
- https://github.com/redisson/redisson/wiki/Table-of-Content
- https://redis.io/topics/distlock