锁#
- class redis.lock.Lock(redis, name, timeout=None, sleep=0.1, blocking=True, blocking_timeout=None, thread_local=True)[source]#
一个共享的、分布式的锁。使用 Redis 进行锁定允许锁在进程和/或机器之间共享。
解决死锁问题并确保多个客户端能够正常协作是用户的责任。
- 参数
name (
str
) –timeout (
Union
[int
,float
,None
], default:None
) –sleep (
Union
[int
,float
], default:0.1
) –blocking (
bool
, default:True
) –blocking_timeout (
Union
[int
,float
,None
], default:None
) –thread_local (
bool
, 默认值:True
) –
- acquire(sleep=None, blocking=None, blocking_timeout=None, token=None)[source]#
使用 Redis 持有一个名为
name
的共享分布式锁。获取锁后返回 True。如果
blocking
为 False,则始终立即返回。如果获取了锁,则返回 True,否则返回 False。blocking_timeout
指定尝试获取锁的最大等待秒数。token
指定要使用的令牌值。如果提供,令牌必须是字节对象或可以使用默认编码编码为字节对象的字符串。如果未指定令牌,则会生成 UUID。- 参数
sleep (
Union
[int
,float
,None
], 默认值:None
) –blocking (
Optional
[bool
], 默认值:None
) –blocking_timeout (
Union
[int
,float
,None
], default:None
) –token (
Optional
[str
], 默认值:None
) –