redis锁定机制

redlock-p的Python项目详细描述


python中的redlock py-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毫秒)。

disclaimer:此代码实现一个算法,该算法目前是一个建议, 没有正式分析。使用前一定要了解它的工作原理 在您的生产环境中。

麻省理工学院许可证(MIT)

版权所有(c)2014 SPS Commerce,Inc.

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的所有副本或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与软件、使用或其他交易有关 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用外部java程序在minecraft中移动minecraft角色的相机   java输出文本文件中的变量   java LazyLoadingException在我尝试从多通关系获取对象时出现   java json rest API的错误:ClassCastException:org。json。无法将JSONObject强制转换为组织。json。杰索纳雷   java BigInteger。C中的intValue()等价物#   java大写所有字符,但不包括带引号字符串中的字符   java获取特殊字符   javascript为什么Selenium中的所有getX()调用都需要这么长时间?   rabbitmq rabbitmq java客户端并行消费   如何使用selenium Java在popover窗口中提取文本   对象在java中构造一类对象   java Room数据库未实现   json JSONObject可以使用java保存大的格式化双值吗?   有时限的旅行推销员   java HttpsURLConnection openConnection查询   java无法使用Spring@Entity注释创建MySQL表   lambda Java 8仅映射到值类型集合   java提供OSGi服务而不实现接口   java单个对象重写对象数组,不确定原因