带redis的分布式锁
redlock-dist的Python项目详细描述
红锁距离
实现分布式锁使用量
安装:
pip install redlock-dist
示例:
from redis import StrictRedis
from redlock_dist import RedLock
rds = StrictRedis(host='localhost', port=6379, db=0)
"""
:param expire: lock key ttl(ms)
:param retry_times: retry times to get lock
:param retry_interval: retry interval(ms)
"""
with RedLock(rds, 'key-name', expires=30000, retry_times=3, retry_interval=50) as red_lock:
if red_lock:
print('get lock')
else:
print('do not get lock')
原则和注意事项
因为redis是单线程的,您可以使用SET key value NX PX expires