【问题标题】:Redis INCR concurrencyRedis INCR 并发
【发布时间】:2013-05-21 14:18:44
【问题描述】:

我正在使用 Redis 的 INCR 为对象生成 ID。然后使用ZADD添加以ID为key的对象。

我是否需要担心是否有多个连接在执行同一代码块?在id:12 之后说,如果两个连接同时连接并且都使用id:13 添加对象,那么其中一个会丢失。

【问题讨论】:

    标签: concurrency redis block blocking


    【解决方案1】:

    由于 redis 是单线程的,这永远不会发生 - 一次只有一个客户端可以对数据库进行更改。

    【讨论】:

      【解决方案2】:

      正如 Jonatan Hedborg 所说,Redis 是单线程的,因此您永远不必担心两个客户端同时做某事。另一方面,如果您担心要按顺序运行 INCR 和 ZADD 命令,并希望确保在它们之间没有运行其他命令,您可以使用transactions,并保证您的命令运行作为一个单独的单元,中间没有任何东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-02
        • 1970-01-01
        • 2014-01-10
        • 2019-11-03
        • 1970-01-01
        • 2023-04-08
        相关资源
        最近更新 更多