我有一个由 3 个主节点组成的 Redis 集群,每个主节点都有相应的从节点。我想在集群上获取一个锁来执行一些写操作,然后释放锁。
从我读到的内容是 - 要连接到集群,我们通常连接到集群中的一个节点并在该节点上执行所有操作,该节点又处理重定向到集群中的其他节点。
是否可以在 Redis 集群上获取锁? [P.S 我正在使用 Redisson 客户端]
从 Redisson 客户端中 Multilock 和 redlock ( https://github.com/redisson/redisson/wiki/8.-Distributed-locks-and-synchronizers ) 下的示例中,它们正在获取单个节点上的锁。
Jedis 似乎也支持锁定集群( https://github.com/kaidul/jedis-lock )。
P.S:我已经对此进行了广泛的阅读,但是我无法找到有关锁定集群的明确答案。真的很感激一些帮助。
最佳答案
我找到了解决上述问题的方法。
就我们在所有客户端节点上使用相同的 key 获取锁而言,所有获取锁的尝试都将转到 Redis 集群上的同一个节点。所以你可以使用Redisson的简单Rlock。
请参阅对此问题的评论:
https://github.com/leandromoreira/redlock-rb/issues/63
关于redis - 锁定redis集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60771436/