分布式读写器锁定 python

Distributed readers-writer lock in python

我正在寻找可以在python分布式系统中使用的readers-writer lock

到目前为止我发现:

  1. redlock,这是基于redis的。不提供读写锁。
  2. dask 的分布式包提供了 lock,但同样没有读写锁。
  3. kazoo,与 Zookeeper 配合使用,offers a readers-writer lock。但是 Zookeeper 是一个非常重的依赖项,因为它写在 Java 中,因此需要 JDK.

是否有比 kazoo / Zookeeper 更轻量级的替代品?理想情况下是经过实战测试的纯 python 解决方案?

Redis 是 单线程的并且 read/write 操作是原子的;这意味着多个同时的 read/write 操作不会成功,并且 readers 和 writer(s) 将以原子方式顺序获取对资源的访问。我相信如果资源作为 redis 数据结构之一保存,这将解决您的问题。当使用 redis 和 python 作为资源保存在 redis 中的组合时,您不需要单独的 reader-writer 锁机制。

希望对您有所帮助