Redis锁紧机构
jc-redlock-p的Python项目详细描述
redlock py-Python中的Redis分布式锁
这个python库实现了基于Redis的分布式锁管理器算法 [在这篇博文中描述](http://antirez.com/news/77)。在
要创建锁管理器,请执行以下操作:
dlm = Redlock([{“host”: “localhost”, “port”: 6379, “db”: 0}, ])
要获取锁:
my_lock = dlm.lock(“my_resource_name”,1000)
其中资源名是您试图锁定的内容的唯一标识符 1000是有效时间的毫秒数。在
如果未获取锁,则返回值为False(您可以再试一次), 否则,将返回一个表示锁的namedtuple,它有三个字段:
- validity,表示锁有效的毫秒数的整数。在
- 资源,用户指定的锁定资源的名称。在
- 密钥,一个随机值,用于安全地回收锁。在
要解除锁定:
dlm.unlock(my_lock)
可以设置重试次数(默认为3)和重试次数 用于获取锁的延迟(默认为200毫秒)。在
免责声明:此代码实现了一个当前是建议的算法, 它没有被正式分析。在使用它之前,一定要了解它的工作原理 在您的生产环境中。在
麻省理工学院执照
版权所有(c)2014 SPS Commerce,Inc
兹免费准许任何人取得复制品 本软件及其相关文档文件(“软件”)的 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的使用者 根据以下条件提供:
上述版权声明和本许可声明应包括在 软件的所有副本或重要部分。在
本软件按“原样”提供,无任何形式的保证,明示或 包括但不限于适销性保证, 特定目的的适用性和非侵犯性。在任何情况下 作者或版权持有人应对任何索赔、损害赔偿或其他 无论是在合同诉讼、侵权诉讼或其他诉讼中,由以下原因引起的责任:, 与软件、软件的使用或其他交易有关的 软件。在
- 项目
标签: