首页 > 解决方案 > 锁定redis集群

问题描述

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

从我读到的内容是 - 要连接到集群,我们通常连接到集群中的一个节点并在该节点上执行所有操作,然后再处理重定向到集群中的其他节点。

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

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

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

标签: redisdistributed-computingspring-data-redisredis-clusterdistributed-lock

解决方案


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

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

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


推荐阅读