下面是一个简单的分布式锁实现的代码示例:
import redis
class DistributedLock:
def __init__(self, redis_client, lock_name, expire_time=10):
self.redis_client = redis_client
self.lock_name = lock_name
self.expire_time = expire_time
def acquire(self):
while True:
result = self.redis_client.set(self.lock_name, "locked", nx=True, ex=self.expire_time)
if result:
return True
def release(self):
self.redis_client.delete(self.lock_name)
使用示例:
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)
lock = DistributedLock(redis_client, 'mylock')
# 尝试获取锁
if lock.acquire():
try:
# 执行加锁操作后的代码
print("Lock acquired!")
finally:
# 释放锁
lock.release()