【问题标题】:Choosing SETNX over SET in Redis在 Redis 中选择 SETNX 而不是 SET
【发布时间】:2013-06-08 18:08:53
【问题描述】:

我正在编写这个应用程序,我将在其中使用 Redis 作为各种数据库来存储聊天消息。 每当我需要设置任何给定的键以确保它不存在时,我正在考虑使用 SETNX。

但应用程序需要非常灵敏,因为它是实时的。 我想知道的是执行 SETNX 操作是否成本高昂,尤其是在有大量客户端执行该操作的情况下。

注意: 我通读了这份文档http://redis.io/topics/data-types-intro,看起来在 SETNX 实现中有点退出,但我仍然不确定它的成本有多大。 谢谢。

【问题讨论】:

    标签: database redis


    【解决方案1】:

    我想知道的是执行SETNX操作是否 代价高昂,尤其是在有大量客户执行的情况下 那个操作。

    关于速度 - 因为 redis 是基于内存的,所以它会“非常快”。绝对比您首先尝试获取密钥以确定它是否存在并设置密钥(如果不存在)的情况更快,因为您将执行两次网络往返(获取和设置)而不是一次(setnx)。

    关于大量客户端 - redis 是单线程的,并在命令到达时按顺序执行命令,它能够处理许多同时连接的客户端(请参阅docs)。

    【讨论】:

    • 只是为了增加清晰度:redis 一次执行一个命令。两个或多个客户端不能同时执行命令。
    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 2016-05-30
    • 2022-01-10
    相关资源
    最近更新 更多