建网站要大约多少钱,触摸网站手机,世界室内设计公司排名,网站建设高端一 redis实现分布式锁
1.1 原理
setnxexpiredel 命令实现redis的分布式锁#xff1b;其中 setnx 不存在则新增#xff1b;存在则忽略。即先用setnx来抢锁#xff0c;如果抢到之后#xff0c;再用expire给锁设置一个过期时间#xff0c;防止锁忘记了释放。例如#xf…一 redis实现分布式锁
1.1 原理
setnxexpiredel 命令实现redis的分布式锁其中 setnx 不存在则新增存在则忽略。即先用setnx来抢锁如果抢到之后再用expire给锁设置一个过期时间防止锁忘记了释放。例如
setnx lock 111 ex 20 nx
但是如果expire无法执行, 会导致死锁redis中setnxexpire是非原子操作, 除了用LUA脚本保证实现原子操作, 其实可以直接使用redis自带的set方法直接实现.