分布式锁是在分布式系统中常用的一种同步机制,它可以确保在分布式环境下多个进程或线程之间的互斥访问。Redis 是一个高性能的键值存储系统,其提供了一些特性可以用来实现分布式锁。本文将介绍几种使用 Redis 实现分布式锁的方法,并提供相应的源代码示例。
方法一:基于 SETNX 和 EXPIRE
SETNX 是 Redis 的一个原子操作,用于设置一个键的值,如果该键已经存在,则不进行任何操作。结合 EXPIRE 命令,可以设置一个键的过期时间,使其在一段时间后自动过期。我们可以利用这两个命令实现一个简单的分布式锁。
以下是一个使用 SETNX 和 EXPIRE 实现分布式锁的示例代码:
import redis
import time
def acquire_lock(lock_key, expiration_time)