STEP_1
SET NX PX 原子命令 + 唯一 UUID 标识Instance A — SET NX lock:sku_001OK
Instance B — SET NX lock:sku_001(nil)
Instance C — SET NX lock:sku_001(nil)
lock-acquire.log
// 多实例并发竞争
// Instance A
SET lock:product:sku_001 "uuid-A"
NX // 不存在时才写入
PX 30000 // 30秒自动过期(防死锁)
// Redis 原子执行:
// → Instance A: OK (加锁成功)
// → Instance B: (nil) (加锁失败)
// → Instance C: (nil) (加锁失败)
// B, C 进入重试或放弃流程竞争加锁:多个服务实例同时对同一 Key 执行 SET NX(Not eXists)原子操作,Redis 单线程保证只有一个实例成功加锁。
实时沙盒SANDBOX
DEGRADED
快速场景
手动调节
并发客户端数
Concurrent Clients
10个
锁竞争合理
锁 TTL 时长
Lock Expiry Time
5000ms
TTL 过短,业务未完成锁已过期,导致并发问题
Redis 节点宕机
所有节点正常运行