加锁与观察
加锁与观察
# 加锁:NX=不存在才设置;PX=毫秒级过期(EX 为秒)
SET lock:order:42 6f1d2c4e NX PX 10000
# -> OK 拿到锁
# -> (nil) 别人持有,稍后重试或快速失败
# 查看锁当前值/剩余时间(调试用)
GET lock:order:42
PTTL lock:order:42| 语法 | SET lock:<资源> <token> NX PX <毫秒> |
|---|---|
| token | UUID 或 机器-线程-请求 唯一串,释放时校验 |
| 成败判断 | OK=加锁成功;nil=未拿到 |
| 建议 | TTL 取业务 P99 耗时的数倍,长任务配续期 |
释放不要直接 DEL:必须校验 token(见「锁的安全释放」);value 也不要写死。