以下是 Redis 分布式锁的简单代码实现(使用 Python 语言):
import redis
import time
# 连接到 Redis 服务器
redis_client = redis.Redis(host='localhost', port=6379, db=0)
def acquire_lock(lock_name, acquire_time=10):
"""获取分布式锁"""
lock_value = str(time.time() + acquire_time + 1)
result = redis_client.setnx(lock_name, lock_value)
if result:
# 获取锁成功
return True
else:
lock_time = redis_client.get(lock_name)
if lock_time and float(lock_time) < time.time():
# 锁已经过期,可以尝试获取锁
old_lock_time = redis_client.getset(lock_name, lock_value)
if old_lock_time == lock_time:
# 获取锁成功
return True
# 获取锁失败
return False
def release_lock(lock_name):
"""释放分布式锁"""
redis_client.delete(lock_name)