Redis 分布式锁

redis_database/distributed_lock2026-10-29 11:03:47

Redis 分布式锁使用 Redis 协调不同客户端的临时资源占有,正确性依赖获取、释放、过期和故障模型。

获取与释放

单实例常用 SET key token NX PX timeout 原子取得带期限的锁。释放时必须原子地比较 token 并删除,不能先读后删,也不能删除其他客户端后来获得的锁。

租约失效

锁过期后,原持有者可能仍在运行。续期需要确认所有权,并处理暂停、网络故障及续期失败;锁存在过并不保证后续资源写入仍有权执行。

对关键写入应结合目标系统的版本或令牌校验,避免过期持有者造成副作用。Redis 主从切换和多节点算法还有各自假设,不能把一个 SET 示例当作完整故障安全证明。

参考资料

本页目录