先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。
java代码参考:java代码实现参考
如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? (Setnx(SET if Not eXists) )
回答:我记得set指令有非常复杂的参数,这个应该是可以同时把setnx和expire合成一条指令来用的!
先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。
java代码参考:java代码实现参考
如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? (Setnx(SET if Not eXists) )
回答:我记得set指令有非常复杂的参数,这个应该是可以同时把setnx和expire合成一条指令来用的!