锁定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 客户端示例中,它们正在获取单个节点上的锁。
- 多锁或红锁如何在集群上工作?
- 如果我有一个 Redis 集群,我应该如何使用哪种锁?
- 我使用哪个库 (Jedis/Redisson)?
Jedis 似乎也支持锁定集群 (https://github.com/kaidul/jedis-lock)。
P.S:我已经广泛阅读了这方面的内容,但我无法找到关于锁定集群的明确答案。真的很感激一些帮助。
我找到了上述问题的解决方案。
就我们使用相同的密钥在所有客户端节点上获取锁而言,所有获取锁的尝试都将转到 Redis 集群上的同一节点。所以你可以只使用来自 Redisson 的简单 Rlock。
查看此问题的评论:
https://github.com/leandromoreira/redlock-rb/issues/63
我有一个Redis集群,有3个master节点,每个master都有对应的slave节点。我想在集群上获取一个锁来执行一些写操作,然后释放锁。
据我了解 - 要连接到集群,我们通常连接到集群中的一个节点并在该节点上执行所有操作,该节点又会处理重定向到集群中其他节点的操作。
是否可以获取Redis 集群上的锁? [P.S 我正在使用 Redisson 客户端] 从 Multilock 和 redlock (https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers) 下的 Redisson 客户端示例中,它们正在获取单个节点上的锁。
- 多锁或红锁如何在集群上工作?
- 如果我有一个 Redis 集群,我应该如何使用哪种锁?
- 我使用哪个库 (Jedis/Redisson)?
Jedis 似乎也支持锁定集群 (https://github.com/kaidul/jedis-lock)。
P.S:我已经广泛阅读了这方面的内容,但我无法找到关于锁定集群的明确答案。真的很感激一些帮助。
我找到了上述问题的解决方案。
就我们使用相同的密钥在所有客户端节点上获取锁而言,所有获取锁的尝试都将转到 Redis 集群上的同一节点。所以你可以只使用来自 Redisson 的简单 Rlock。
查看此问题的评论: https://github.com/leandromoreira/redlock-rb/issues/63