什么时候需要进行需要原子操作? 很常见的例子,就是利用Redis实现分布式锁. 实现锁需要哪些条件? 我们知道要实现锁,就需要一个改变锁状态的方法.这个方法能原子地对锁的状态进行检查并修改.如果修改成功,则意味着获得了锁.对于硬件,就是它提供的就是test-and-set,compare-and-swap等原语. Redis有没有提供类似的原语呢? 有的.Redis有提供setnx(),它会提供这样的原子操作:如果key没有值,则将值设置进去,如果已有值就不做处理,提示失败. 这样就可以基于这个…