redis - 锁定redis集群

标签 redis distributed-computing spring-data-redis redis-cluster distributed-lock

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

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

是否可以在 Redis 集群上获取锁? [P.S 我正在使用 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 )。

    P.S:我已经对此进行了广泛的阅读,但是我无法找到有关锁定集群的明确答案。真的很感激一些帮助。

    最佳答案

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

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

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

    关于redis - 锁定redis集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60771436/

    相关文章:

    redis - 使用 set 或只是在 redis 中创建键来检查是否存在?

    distributed-computing - Paxos 和发现

    redis - 如何监控 Spring-data-redis 池指标?

    node.js - 管道 Redis 发布到套接字? Node .js

    redis - 访问 Redis 数据库的有效方法

    cloud - NotServingRegion异常 : Region hbase:meta

    java - ReactiveRedisTemplate opsForHash put 不会覆盖值

    java - 为什么spring data redis findById在升级到版本2.3.2.RELEASE后在Optional中返回空值

    mongodb - 哪种 NoSQL 数据库可用于处理大量数据

    javascript - 在分布式环境中拆分数组以找到两个子数组之和之间的最小差异