Redis分布式锁

使用过Redis分布式锁么,它是什么回事?

先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。

如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样?

set指令有参数,同时把setnx和expire合成一条指令来用的

$this->redis->set($redisKey, ['nx', 'ex' => 3]);

先拿setnx来争抢锁,抢到之后,再用expire给锁加一个过期时间防止锁忘记了释放。

问题

有其他方式实现分布式锁吗?

Last updated