Redis setNX锁实现
setNX设置锁时设置值和过期时间是个原子的操作。对于setNX的并发性问题在底层实现上有这些措施。1.对锁加一个过期时间,防止客户端A设置了锁,然后客户端挂了,锁一直得不到释放这种情况。2.释放锁的操作必须使用Lua脚本来实现。释放锁其实包含三步操作:'GET'、判断和'DEL',用Lua脚本来实现能保证这三步的原子性。否则,如果把这三步操作放到客户端逻辑中去执行的话,就有可能发生...