redis集群上的锁

min*_*ion 7 distributed-computing redis distributed-lock spring-data-redis redis-cluster

我有一个包含3个主节点的Redis集群,每个主节点都有相应的从节点。我想获取集群上的锁来执行一些写操作,然后释放锁。

据我所知,要连接到集群,我们通常连接到集群中的一个节点,并在该节点上执行所有操作,该节点又处理重定向到集群中其他节点的操作。

Redis集群是否可以获取锁?[PS我正在使用Redisson客户端]从Redisson客户端中Multilock和redlock( https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers )下的示例中,它们正在获取锁在各个节点上。

  • 多锁或红锁如何在集群上工作?
  • 如果我有 Redis 集群,我该如何使用以及使用什么类型的锁?
  • 我使用哪个库(Jedis/Redisson)?

Jedis 似乎还支持集群锁定(https://github.com/kaidul/jedis-lock)。

PS:我已经广泛阅读了这方面的内容,但我无法找到有关锁定集群的明确答案。非常感谢一些帮助。

min*_*ion 2

我找到了上面问题的解决方案。

只要我们使用相同的密钥在所有客户端节点上获取锁,所有获取锁的尝试都将前往 Redis 集群上的同一节点。所以你可以使用 Redisson 的简单 Rlock。

请参阅对此问题的评论: https ://github.com/leandromoreira/redlock-rb/issues/63