Redis分布式锁
基础实现
如何用 Redis 实现分布式锁?核心步骤是什么?
一句话原理:Redis 分布式锁基于“占用式”思想,利用 SET NX EX 原子命令抢占锁标识,通过唯一 Value 防止误删,并结合 Lua 脚本确保“判断+删除”解锁过程的原子性。
一句话源码:在 db.c 中,SET NX 命令本质上调用 setKey 函数,在 lookupKeyWrite 查找 Key 不存在时执行 dbAdd 写入并关联 setExpire 过期时间,从而实现互斥。
一句话项目/场景:在电商秒杀扣减库存场景中,使用 SET lock:stock UUID NX EX 10 加锁,业务执行完毕后通过 Lua 脚本校验 UUID 并 DEL,严防超卖与死锁。