【问题标题】:Do long running operations lock redis?长时间运行的操作会锁定redis吗?
【发布时间】:2013-09-30 04:31:24
【问题描述】:

在Redis中,SINTERSTORE等一些操作有

时间复杂度: O(N*M) 最坏情况,其中 N 是最小集合的基数,M 是集合的数量。

在我的用例中,我希望比较每组超过 15,000 个项目。对这些集合执行 N*M 操作将是 O(30,000)。手术没有时间要求,这意味着我不在乎需要多长时间。我的问题是在进行此计算时我的 Redis 是否会锁定。有什么想法吗?

【问题讨论】:

    标签: redis


    【解决方案1】:

    简单的答案是“是”,因为 Redis 基于单线程架构。

    不简单的答案是“视情况而定” - 如果您以优化的方式对 Redis 进行分片,则只有执行此复杂操作的分片会被阻止,其他分片不会。

    【讨论】:

      【解决方案2】:

      Redis 是单线程的。它不会锁定任何东西,但在该命令完成之前不会处理任何其他命令。所以就好像 Redis 被锁定了,我想这就是你的意思。

      另请参阅:Locking and Redis

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-10
        • 2011-11-30
        • 2018-04-28
        • 1970-01-01
        • 1970-01-01
        • 2019-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多