分布式锁应该具备哪些条件
- 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行
- 高可用的获取锁与释放锁
- 高性能的获取锁与释放锁
- 具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误)
- 具备锁失效机制,防止死锁
- 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败
ps. 考虑幂等性
分布式锁实现
基于数据库
基于Redis SET命令
wath dog去自动设置超时时间
通过 Redis 分布式锁的实现理解基本概念
https://www.jianshu.com/p/a1ebab8ce78a
基于Memcache CAS命令
基于Zookeeper