2026-10-19 14:25:51
Redis实现分布式锁有以下六种方案:
方案一:SETNX + EXPIRE依赖客户端时间同步,若时间不同步可能导致锁提前或延迟释放。
锁无持有者标识,可能被其他客户端误释放。
NX:仅当键不存在时设置。
EX seconds:设置秒级过期时间。
PX milliseconds:设置毫秒级过期时间。
自动续期,避免业务未完成时锁被释放。
提供可重入锁、公平锁等高级特性。
客户端向所有节点请求加锁。
若超过半数节点返回成功,则认为加锁成功。
锁的过期时间需扣除网络延迟和时钟漂移。