锁定redis集群

Lock on redis cluster

我有一个Redis集群,有3个master节点,每个master都有对应的slave节点。我想在集群上获取一个锁来执行一些写操作,然后释放锁。

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

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

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

P.S:我已经广泛阅读了这方面的内容,但我无法找到关于锁定集群的明确答案。真的很感激一些帮助。

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

就我们使用相同的密钥在所有客户端节点上获取锁而言,所有获取锁的尝试都将转到 Redis 集群上的同一节点。所以你可以只使用来自 Redisson 的简单 Rlock。

查看此问题的评论: https://github.com/leandromoreira/redlock-rb/issues/63